diff --git a/.env b/.env deleted file mode 100644 index 3c85edcc9..000000000 --- a/.env +++ /dev/null @@ -1,60 +0,0 @@ -# Language code as supported by Sphinx: -# https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language -LANGUAGE ?= pt_BR - -# Branch used in the project and in CPython -BRANCH := 3.12 - -############################ -# Environment variables for 'merge' target -############################ -# -# Version(s) that still receive(s) bug fixes, not only security-related fixes. -# Versions in this variable will have their translation replaced with changes -# in currently active version being translated. These will have pomerge's -# --overwrite flag set. -BUGFIXBRANCH ?= 3.11 - -# Version(s) that are considered security fixes or EOL. Let's make them more -# stable, with more predictable state. These versions will not have translated -# strings replaced with translations update. These will have pomerge's -# --no-overwrite flag set. -OLDERBRANCHES ?= 3.10 3.9 3.8 3.7 3.6 2.7 -# -############################ - - -############################ -# Environment variables for 'build' target -############################ -# -# If set to -W, warnings will be considered as errors. -# Set to "" keep warnings as is. -SPHINXERRORHANDLING := "-W" -# -############################ - -########################### -# Environment variables for 'tx-install' target -########################### -# -# Specific Transifex CLI Client version to install. -# If unset, latest version will be used. -TX_CLI_VERSION ?= '1.6.7' - -# Install directory of TX_CLI_DIR. Consider using a directory already -# in the PATH environment variable because install script will add this -# directory to PATH in your ~/.bashrc. -TX_CLI_DIR ?= $(shell realpath ~/.local/bin) - -############################ -# Paths and URLs -############################ -# -PYTHON ?= $(shell which python3) -CPYTHON_DIR := cpython -LOCALE_DIR := Doc/locales -LOGS_DIR := logs -VENV_DIR := .venv -# -####### diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 8bcf9ba87..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "rffontenelle" - commit-message: - prefix: "gha" - - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "rffontenelle" - commit-message: - prefix: "pip" diff --git a/.github/problem-matchers/sphinx.json b/.github/problem-matchers/sphinx.json deleted file mode 100644 index a0299d893..000000000 --- a/.github/problem-matchers/sphinx.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "problemMatcher": [ - { - "owner": "sphinx-problem-matcher", - "pattern": [ - { - "regexp": "^(.*):(\\d+):\\s+(\\w*):\\s+(.*)$", - "file": 1, - "line": 2, - "severity": 3, - "message": 4 - } - ] - }, - { - "owner": "sphinx-problem-matcher-loose", - "pattern": [ - { - "_comment": "A bit of a looser pattern, doesn't look for line numbers, just looks for file names relying on them to start with / and end with .rst", - "regexp": "(\/.*\\.rst):\\s+(\\w*):\\s+(.*)$", - "file": 1, - "severity": 2, - "message": 3 - } - ] - }, - { - "owner": "sphinx-problem-matcher-loose-no-severity", - "pattern": [ - { - "_comment": "Looks for file names ending with .rst and line numbers but without severity", - "regexp": "^(.*\\.rst):(\\d+):(.*)$", - "file": 1, - "line": 2, - "message": 3 - } - ] - } - ] -} diff --git a/.github/scripts/list-obsolete.py b/.github/scripts/list-obsolete.py deleted file mode 100755 index 2c5434913..000000000 --- a/.github/scripts/list-obsolete.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python3 -# List PO files that no longer have a corresponding page in Python docs - -import os -import os.path -import sys -import subprocess - -def run(cmd): - return subprocess.check_output(cmd, shell=True, text=True) - -# Set POT root directory from command-line argument or hardcoded, then test it -pot_root = 'cpython/Doc/locales/pot/' - -if len(sys.argv) > 1: - pot_root = sys.argv[0] - -if not os.path.isdir(pot_root): - print(f'Unable to find the POT directory {pot_root}') - exit(1) - -# List PO files tracked by git -po_files = run('git ls-files | grep .po | tr "\n" " "').split() - -# Compare po vs pot, store po without corresponding pot -to_remove = [] -for file in sorted(po_files): - pot = os.path.join(pot_root, file + 't') - if not os.path.isfile(pot): - to_remove.append(file) - -# Exit if no obsolete, or print obsoletes files. -# If running in GitHub Actions, add a problem matcher to bring up the attention -if len(to_remove) == 0: - exit -else: - matcher = "" - if 'CI' in os.environ: - matcher = '::error::' - print(f'{matcher}The following files are absent in the documentation, hence they should be removed:\n') - for file in to_remove: - print(f'{matcher} ' + file) - print("") - exit(1) diff --git a/.github/scripts/prepmsg.sh b/.github/scripts/prepmsg.sh deleted file mode 100755 index 2111ab29a..000000000 --- a/.github/scripts/prepmsg.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# Prepare message for Telegram notification -set -ex - -die() { echo "$0: error: $*" >&2; exit 1; } - -[ $# -ne 2 ] && die "Expected 1 input and 1 output files, got $#" -[ ! -f "$1" ] && die "Input file $1 not found, skipping." -[ -z "${GITHUB_REPOSITORY}" ] && die "GITHUB_REPOSITORY is empty." -[ -z "${GITHUB_RUN_ID}" ] && die "GITHUB_RUN_ID is empty." -[ -z "${GITHUB_JOB}" ] && die "GITHUB_JOB is empty." - -URL="https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" - -input="$1" -output="$2" - -touch aux -if [[ "${GITHUB_JOB}" == "build" ]]; then - grep 'cpython/Doc/.*WARNING:' "$input" | \ - sed 's|.*/cpython/Doc/||' | \ - uniq | \ - sed 's|^|```\n|;s|$|\n```\n|' \ - > aux -elif [[ "${GITHUB_JOB}" == "lint" ]]; then - grep -P '^.*\.po:\d+:\s+.*\(.*\)$' "$input" | \ - sort -u | \ - sed 's|^|```\n|;s|$|\n```\n|' \ - > aux -else - die "Unexpected job name ${GITHUB_JOB}" -fi - -[[ $(cat aux) == "" ]] && die "Unexpected empty output message." - -echo "❌ *${GITHUB_JOB}* (ID [${GITHUB_RUN_ID}]($URL)):" > "$output"; -{ echo ""; cat aux; echo ""; } >> "$output" -rm aux diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml deleted file mode 100644 index 0a671ebe4..000000000 --- a/.github/workflows/check.yml +++ /dev/null @@ -1,235 +0,0 @@ -# Run some tests in the Python Doc translations - -name: Check - -on: - workflow_dispatch: - workflow_call: - pull_request: - branches: - - '3.12' - paths: - - '.github/workflows/check.yml' - - '.github/scripts/prepmsg.sh' - - '.github/scripts/list-obsolete.py' - - 'Makefile' - - 'requirements.txt' - - '*.po' - - '**/*.po' - push: - branches: - - '3.12' - paths: - - '.github/workflows/check.yml' - - '.github/scripts/prepmsg.sh' - - '.github/scripts/list-obsolete.py' - - 'Makefile' - - 'requirements.txt' - - '*.po' - - '**/*.po' - -permissions: - contents: read - -jobs: - # Build documentation handling warnings as errors. Always store logs. - # If success, make built docs artifact. If failure, notify telegram. - build: - name: Build translated docs - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.2 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: Add problem matcher - uses: sphinx-doc/github-problem-matcher@v1.0 - - - name: Build docs - continue-on-error: true - id: build - run: | - make build - - - name: Upload artifact - docs - if: steps.build.outcome == 'success' - uses: actions/upload-artifact@v4.3.1 - with: - name: docs - path: cpython/Doc/build/html - - - name: Upload artifact - log files - if: always() - uses: actions/upload-artifact@v4.3.1 - with: - name: build-logs - path: logs/* - - - name: Prepare notification (only on error) - if: steps.build.outcome == 'failure' - id: prepare - run: .github/scripts/prepmsg.sh logs/build/err*.txt logs/notify.txt - env: - GITHUB_JOB: ${{ github.job }} - GITHUB_RUN_ID: ${{ github.run_id }} - GITHUB_REPOSITORY: ${{ github.repository }} - - - name: Notify via Telegram - if: steps.prepare.outcome == 'success' - uses: appleboy/telegram-action@v0.1.1 - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - format: markdown - disable_web_page_preview: true - message_file: logs/notify.txt - - - # Run sphinx-lint to find wrong reST syntax in PO files. Always store logs. - lint: - name: Lint translations - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.2 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: Add problem matcher - uses: rffontenelle/sphinx-lint-problem-matcher@v1.0.0 - - - name: Run sphinx-lint - continue-on-error: true - id: lint - run: | - make lint - - - name: Upload artifact - log files - uses: actions/upload-artifact@v4.3.1 - with: - name: lint-logs - path: logs/* - - #- name: Prepare notification (only on error) - # if: step.lint.outcome == 'failure' - # id: prepare - # run: scripts/prepmsg.sh logs/build/err*.txt logs/notify.txt - # env: - # GITHUB_JOB: ${{ github.job }} - # GITHUB_RUN_ID: ${{ github.run_id }} - # GITHUB_REPOSITORY: ${{ github.repository }} - # - #- name: Notify via Telegram - # if: step.prepare.outcome == 'success' - # uses: appleboy/telegram-action@v0.1.1 - # with: - # to: ${{ secrets.TELEGRAM_TO }} - # token: ${{ secrets.TELEGRAM_TOKEN }} - # format: markdown - # disable_web_page_preview: true - # message_file: logs/notify.txt - - - # Spell check the PO files, and store them in logs/ directory - pospell: - name: Spell check translations - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.2 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: Install Hunspell - run: sudo apt install hunspell hunspell-pt-br -y - - - name: Run pospell - continue-on-error: true - id: pospell - run: make spell - - - name: Upload artifact - log files - uses: actions/upload-artifact@v4.3.1 - with: - name: pospell-logs - path: logs/* - - - # Gather all strings in a single PO file, useful for Translation Memory - # Also run powrap, useful only for pull_request testing for dependabot - compendium: - runs-on: ubuntu-latest - steps: - - name: Check out ${{ github.repository }} - uses: actions/checkout@v4.1.2 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: Install dependencies - run: | - sudo apt update -y && sudo apt install gettext -y - pip3 install --upgrade pip - pip3 install -r requirements.txt - - - name: Generate compendium from PO files - run: | - pocompendium --correct compendium.po *.po **/*.po - powrap compendium.po - - - name: Upload artifact - uses: actions/upload-artifact@v4.3.1 - with: - name: compendium - path: compendium.po - - # List PO files that no longer have a corresponding page in Python docs - list-obsolete: - runs-on: ubuntu-latest - steps: - - name: Check out ${{ github.repository }} - uses: actions/checkout@v4.1.2 - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - - - name: Generate POT files - run: make pot - - - name: List obsolete PO files, if any - run: python3 .github/scripts/list-obsolete.py diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml deleted file mode 100644 index bcc7f9083..000000000 --- a/.github/workflows/update.yml +++ /dev/null @@ -1,231 +0,0 @@ -name: Update - -on: - workflow_dispatch: - inputs: - BRANCH: - description: CPython branch to use - required: false - type: string - default: '3.12' - pull_request: - paths: - - '.github/workflows/update.yml' - - 'Makefile' - - 'requirements.txt' - branches: - - '3.12' - push: - paths: - - '.github/workflows/update.yml' - - 'Makefile' - - 'requirements.txt' - branches: - - '3.12' - - '3.11' - - '3.10' - - '3.9' - - '3.8' - - '3.7' - schedule: - - cron: '0 23 * * *' - -permissions: - contents: read - -jobs: - # Download translations from Transifex, keep PO and Logs artifacts - pull: - name: Pull from Transifex - runs-on: ubuntu-latest - steps: - - name: Check out ${{ github.repository }} - uses: actions/checkout@v4.1.2 - - - name: Get branch name on push or schedule - if: | - github.event_name == 'push' || - github.event_name == 'schedule' - run: echo "BRANCH=${GITHUB_REF_NAME}" >>$GITHUB_ENV - - - name: Get branch name on pull - if: github.event_name == 'pull_request' - run: echo "BRANCH=${GITHUB_BASE_REF}" >>$GITHUB_ENV - - - name: Get branch name on manual run - if: github.event_name == 'workflow_dispatch' - run: echo "BRANCH=${{ github.event.inputs.BRANCH }}" >> $GITHUB_ENV - - - name: Check out CPython - uses: actions/checkout@v4.1.2 - with: - repository: python/cpython - ref: ${{ env.BRANCH }} - path: cpython - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - cache: 'pip' - cache-dependency-path: | - 'requirements.txt' - 'cpython/requirements.txt' - - - name: Install dependencies - run: sudo apt update -y && sudo apt install gettext tree -y - - - name: Pull translations - run: | - make tx-config TX_CLI_DIR=/usr/local/bin - if [ "${{ github.event_name }}" != 'pull_request' ]; then - make pull -o tx-config TX_CLI_DIR=/usr/local/bin - fi - env: - TX_TOKEN: ${{ secrets.TX_TOKEN }} - - - name: Upload artifact - po files - uses: actions/upload-artifact@v4.3.1 - with: - name: translations - path: | - *.po - **/*.po - .tx/ - - - name: Upload artifact - log files - if: always() - uses: actions/upload-artifact@v4.3.1 - with: - name: pull-logs - path: | - logs/* - /tmp/*.log - - - # Job for getting po files downloaded and storing this repository - push: - name: Push to repo - needs: [pull] - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - name: Check out ${{ github.repository }} - uses: actions/checkout@v4.1.2 - - - name: Download PO files - uses: actions/download-artifact@v4.1.4 - with: - name: translations - - # Exclude file with only changes in POT-Creation-Date - - name: Changed files - shell: bash - run: | - git diff -I'^"POT-Creation-Date: ' --numstat *.po **/*.po | cut -f3 - git ls-files -o --exclude-standard *.po **/*.po - - - name: Commit and push changes - if: | - github.repository == 'python/python-docs-pt-br' && - github.event_name != 'pull_request' - run: | - git config user.name github-actions - git config user.email github-actions@github.com - make push - - - # Merge translations previously updated into older branches to make sure - # older versions of Python Docs gets translated as well. - # 'overwrite=true' means strings previously translated will get overwritten; - # other branches will preserve translated strings, only filling in new - # translations. - merge: - name: Merge into ${{ matrix.branch }} - needs: [push] - runs-on: ubuntu-latest - permissions: - contents: write - strategy: - fail-fast: false - max-parallel: 3 - matrix: - branch: ['3.11', '3.10', '3.9', '3.8', '3.7', '3.6', '2.7'] - include: - - branch: 3.11 - overwrite: true - steps: - - name: Get branch name on push or schedule - if: | - github.event_name == 'push' || - github.event_name == 'schedule' - run: echo "CURRENT_BRANCH=${GITHUB_REF_NAME}" >>$GITHUB_ENV - - - name: Get branch name on pull - if: github.event_name == 'pull_request' - run: echo "CURRENT_BRANCH=${GITHUB_BASE_REF}" >>$GITHUB_ENV - - - name: Get branch name on manual run - if: github.event_name == 'workflow_dispatch' - run: echo "CURRENT_BRANCH=${{ github.event.inputs.BRANCH }}" >> $GITHUB_ENV - - - name: Check out source branch (${{ env.CURRENT_BRANCH }}) - uses: actions/checkout@v4.1.2 - with: - path: ${{ env.CURRENT_BRANCH }} - persist-credentials: false - - - name: Check out target branch (${{ matrix.branch }}) - uses: actions/checkout@v4.1.2 - with: - ref: ${{ matrix.branch }} - path: ${{ matrix.branch }} - - - name: Set up Python 3 - uses: actions/setup-python@v5.1.0 - with: - python-version: '3' - cache: 'pip' - cache-dependency-path: "${{ env.CURRENT_BRANCH }}/requirements.txt" - - - name: Install dependencies - run: | - sudo apt update -y && sudo apt install gettext -y - pip3 install pomerge powrap - - - name: Merge overwriting on stable release branch - if: ${{ matrix.overwrite == true }} - run: | - pomerge --from ${{ env.CURRENT_BRANCH }}/**/*.po --to ${{ matrix.branch }}/**/*.po - - - name: Merge without overwriting on EOL or security-fix release branch - if: ${{ matrix.overwrite != true }} - run: | - pomerge --no-overwrite --from ${{ env.CURRENT_BRANCH }}/**/*.po --to ${{ matrix.branch }}/**/*.po - - - name: Wrap catalog message files - run: | - powrap --modified -C ${{ matrix.branch }} - - #TODO: Solve make push to work with merge scenario - - name: Commit and push changes - if: | - github.repository == 'python/python-docs-pt-br' && - github.event_name != 'pull_request' - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git diff -I'^"POT-Creation-Date: ' --numstat *.po **/*.po | cut -f3 | xargs -r git add - git add $(git ls-files -o --exclude-standard *.po **/*.po) .tx/config - git diff-index --cached --quiet HEAD || git commit -m "Merge ${{ env.CURRENT_BRANCH }} into ${{ matrix.branch }}" - working-directory: ${{ matrix.branch }} - - - # Call the check.yml workflow after updating to run some tests - call-build: - name: call - needs: push - if: github.event_name != 'pull_request' - uses: ./.github/workflows/check.yml - secrets: inherit diff --git a/.tx/config b/.tx/config index 7719a8d1b..79dac6e06 100644 --- a/.tx/config +++ b/.tx/config @@ -1,3405 +1,4019 @@ [main] host = https://www.transifex.com -[o:python-doc:p:python-newest:r:about] -file_filter = .//LC_MESSAGES/about.po -trans.pt_BR = about.po -source_file = /pot/about.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:bugs] -file_filter = .//LC_MESSAGES/bugs.po -trans.pt_BR = bugs.po -source_file = /pot/bugs.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--abstract] -file_filter = .//LC_MESSAGES/c-api/abstract.po -trans.pt_BR = c-api/abstract.po -source_file = /pot/c-api/abstract.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--allocation] -file_filter = .//LC_MESSAGES/c-api/allocation.po -trans.pt_BR = c-api/allocation.po -source_file = /pot/c-api/allocation.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--apiabiversion] -file_filter = .//LC_MESSAGES/c-api/apiabiversion.po -trans.pt_BR = c-api/apiabiversion.po -source_file = /pot/c-api/apiabiversion.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--arg] -file_filter = .//LC_MESSAGES/c-api/arg.po -trans.pt_BR = c-api/arg.po -source_file = /pot/c-api/arg.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--bool] -file_filter = .//LC_MESSAGES/c-api/bool.po -trans.pt_BR = c-api/bool.po -source_file = /pot/c-api/bool.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--buffer] -file_filter = .//LC_MESSAGES/c-api/buffer.po -trans.pt_BR = c-api/buffer.po -source_file = /pot/c-api/buffer.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--bytearray] -file_filter = .//LC_MESSAGES/c-api/bytearray.po -trans.pt_BR = c-api/bytearray.po -source_file = /pot/c-api/bytearray.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--bytes] -file_filter = .//LC_MESSAGES/c-api/bytes.po -trans.pt_BR = c-api/bytes.po -source_file = /pot/c-api/bytes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--call] -file_filter = .//LC_MESSAGES/c-api/call.po -trans.pt_BR = c-api/call.po -source_file = /pot/c-api/call.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--capsule] -file_filter = .//LC_MESSAGES/c-api/capsule.po -trans.pt_BR = c-api/capsule.po -source_file = /pot/c-api/capsule.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--cell] -file_filter = .//LC_MESSAGES/c-api/cell.po -trans.pt_BR = c-api/cell.po -source_file = /pot/c-api/cell.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--code] -file_filter = .//LC_MESSAGES/c-api/code.po -trans.pt_BR = c-api/code.po -source_file = /pot/c-api/code.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--codec] -file_filter = .//LC_MESSAGES/c-api/codec.po -trans.pt_BR = c-api/codec.po -source_file = /pot/c-api/codec.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--complex] -file_filter = .//LC_MESSAGES/c-api/complex.po -trans.pt_BR = c-api/complex.po -source_file = /pot/c-api/complex.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--concrete] -file_filter = .//LC_MESSAGES/c-api/concrete.po -trans.pt_BR = c-api/concrete.po -source_file = /pot/c-api/concrete.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--contextvars] -file_filter = .//LC_MESSAGES/c-api/contextvars.po -trans.pt_BR = c-api/contextvars.po -source_file = /pot/c-api/contextvars.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--conversion] -file_filter = .//LC_MESSAGES/c-api/conversion.po -trans.pt_BR = c-api/conversion.po -source_file = /pot/c-api/conversion.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--coro] -file_filter = .//LC_MESSAGES/c-api/coro.po -trans.pt_BR = c-api/coro.po -source_file = /pot/c-api/coro.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--datetime] -file_filter = .//LC_MESSAGES/c-api/datetime.po -trans.pt_BR = c-api/datetime.po -source_file = /pot/c-api/datetime.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--descriptor] -file_filter = .//LC_MESSAGES/c-api/descriptor.po -trans.pt_BR = c-api/descriptor.po -source_file = /pot/c-api/descriptor.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--dict] -file_filter = .//LC_MESSAGES/c-api/dict.po -trans.pt_BR = c-api/dict.po -source_file = /pot/c-api/dict.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--exceptions] -file_filter = .//LC_MESSAGES/c-api/exceptions.po -trans.pt_BR = c-api/exceptions.po -source_file = /pot/c-api/exceptions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--file] -file_filter = .//LC_MESSAGES/c-api/file.po -trans.pt_BR = c-api/file.po -source_file = /pot/c-api/file.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--float] -file_filter = .//LC_MESSAGES/c-api/float.po -trans.pt_BR = c-api/float.po -source_file = /pot/c-api/float.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--frame] -file_filter = .//LC_MESSAGES/c-api/frame.po -trans.pt_BR = c-api/frame.po -source_file = /pot/c-api/frame.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--function] -file_filter = .//LC_MESSAGES/c-api/function.po -trans.pt_BR = c-api/function.po -source_file = /pot/c-api/function.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--gcsupport] -file_filter = .//LC_MESSAGES/c-api/gcsupport.po -trans.pt_BR = c-api/gcsupport.po -source_file = /pot/c-api/gcsupport.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--gen] -file_filter = .//LC_MESSAGES/c-api/gen.po -trans.pt_BR = c-api/gen.po -source_file = /pot/c-api/gen.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--hash] -file_filter = .//LC_MESSAGES/c-api/hash.po -trans.pt_BR = c-api/hash.po -source_file = /pot/c-api/hash.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--import] -file_filter = .//LC_MESSAGES/c-api/import.po -trans.pt_BR = c-api/import.po -source_file = /pot/c-api/import.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--index] -file_filter = .//LC_MESSAGES/c-api/index.po -trans.pt_BR = c-api/index.po -source_file = /pot/c-api/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--init] -file_filter = .//LC_MESSAGES/c-api/init.po -trans.pt_BR = c-api/init.po -source_file = /pot/c-api/init.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--init_config] -file_filter = .//LC_MESSAGES/c-api/init_config.po -trans.pt_BR = c-api/init_config.po -source_file = /pot/c-api/init_config.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--intro] -file_filter = .//LC_MESSAGES/c-api/intro.po -trans.pt_BR = c-api/intro.po -source_file = /pot/c-api/intro.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--iter] -file_filter = .//LC_MESSAGES/c-api/iter.po -trans.pt_BR = c-api/iter.po -source_file = /pot/c-api/iter.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--iterator] -file_filter = .//LC_MESSAGES/c-api/iterator.po -trans.pt_BR = c-api/iterator.po -source_file = /pot/c-api/iterator.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--list] -file_filter = .//LC_MESSAGES/c-api/list.po -trans.pt_BR = c-api/list.po -source_file = /pot/c-api/list.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--long] -file_filter = .//LC_MESSAGES/c-api/long.po -trans.pt_BR = c-api/long.po -source_file = /pot/c-api/long.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--mapping] -file_filter = .//LC_MESSAGES/c-api/mapping.po -trans.pt_BR = c-api/mapping.po -source_file = /pot/c-api/mapping.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--marshal] -file_filter = .//LC_MESSAGES/c-api/marshal.po -trans.pt_BR = c-api/marshal.po -source_file = /pot/c-api/marshal.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--memory] -file_filter = .//LC_MESSAGES/c-api/memory.po -trans.pt_BR = c-api/memory.po -source_file = /pot/c-api/memory.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--memoryview] -file_filter = .//LC_MESSAGES/c-api/memoryview.po -trans.pt_BR = c-api/memoryview.po -source_file = /pot/c-api/memoryview.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--method] -file_filter = .//LC_MESSAGES/c-api/method.po -trans.pt_BR = c-api/method.po -source_file = /pot/c-api/method.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--module] -file_filter = .//LC_MESSAGES/c-api/module.po -trans.pt_BR = c-api/module.po -source_file = /pot/c-api/module.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--none] -file_filter = .//LC_MESSAGES/c-api/none.po -trans.pt_BR = c-api/none.po -source_file = /pot/c-api/none.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--number] -file_filter = .//LC_MESSAGES/c-api/number.po -trans.pt_BR = c-api/number.po -source_file = /pot/c-api/number.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--objbuffer] -file_filter = .//LC_MESSAGES/c-api/objbuffer.po -trans.pt_BR = c-api/objbuffer.po -source_file = /pot/c-api/objbuffer.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--object] -file_filter = .//LC_MESSAGES/c-api/object.po -trans.pt_BR = c-api/object.po -source_file = /pot/c-api/object.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--objimpl] -file_filter = .//LC_MESSAGES/c-api/objimpl.po -trans.pt_BR = c-api/objimpl.po -source_file = /pot/c-api/objimpl.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--perfmaps] -file_filter = .//LC_MESSAGES/c-api/perfmaps.po -trans.pt_BR = c-api/perfmaps.po -source_file = /pot/c-api/perfmaps.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--refcounting] -file_filter = .//LC_MESSAGES/c-api/refcounting.po -trans.pt_BR = c-api/refcounting.po -source_file = /pot/c-api/refcounting.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--reflection] -file_filter = .//LC_MESSAGES/c-api/reflection.po -trans.pt_BR = c-api/reflection.po -source_file = /pot/c-api/reflection.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--sequence] -file_filter = .//LC_MESSAGES/c-api/sequence.po -trans.pt_BR = c-api/sequence.po -source_file = /pot/c-api/sequence.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--set] -file_filter = .//LC_MESSAGES/c-api/set.po -trans.pt_BR = c-api/set.po -source_file = /pot/c-api/set.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--slice] -file_filter = .//LC_MESSAGES/c-api/slice.po -trans.pt_BR = c-api/slice.po -source_file = /pot/c-api/slice.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--stable] -file_filter = .//LC_MESSAGES/c-api/stable.po -trans.pt_BR = c-api/stable.po -source_file = /pot/c-api/stable.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--structures] -file_filter = .//LC_MESSAGES/c-api/structures.po -trans.pt_BR = c-api/structures.po -source_file = /pot/c-api/structures.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--sys] -file_filter = .//LC_MESSAGES/c-api/sys.po -trans.pt_BR = c-api/sys.po -source_file = /pot/c-api/sys.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--tuple] -file_filter = .//LC_MESSAGES/c-api/tuple.po -trans.pt_BR = c-api/tuple.po -source_file = /pot/c-api/tuple.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--type] -file_filter = .//LC_MESSAGES/c-api/type.po -trans.pt_BR = c-api/type.po -source_file = /pot/c-api/type.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--typehints] -file_filter = .//LC_MESSAGES/c-api/typehints.po -trans.pt_BR = c-api/typehints.po -source_file = /pot/c-api/typehints.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--typeobj] -file_filter = .//LC_MESSAGES/c-api/typeobj.po -trans.pt_BR = c-api/typeobj.po -source_file = /pot/c-api/typeobj.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--unicode] -file_filter = .//LC_MESSAGES/c-api/unicode.po -trans.pt_BR = c-api/unicode.po -source_file = /pot/c-api/unicode.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--utilities] -file_filter = .//LC_MESSAGES/c-api/utilities.po -trans.pt_BR = c-api/utilities.po -source_file = /pot/c-api/utilities.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--veryhigh] -file_filter = .//LC_MESSAGES/c-api/veryhigh.po -trans.pt_BR = c-api/veryhigh.po -source_file = /pot/c-api/veryhigh.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:c-api--weakref] -file_filter = .//LC_MESSAGES/c-api/weakref.po -trans.pt_BR = c-api/weakref.po -source_file = /pot/c-api/weakref.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:contents] -file_filter = .//LC_MESSAGES/contents.po -trans.pt_BR = contents.po -source_file = /pot/contents.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:copyright] -file_filter = .//LC_MESSAGES/copyright.po -trans.pt_BR = copyright.po -source_file = /pot/copyright.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:distributing--index] -file_filter = .//LC_MESSAGES/distributing/index.po -trans.pt_BR = distributing/index.po -source_file = /pot/distributing/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--building] -file_filter = .//LC_MESSAGES/extending/building.po -trans.pt_BR = extending/building.po -source_file = /pot/extending/building.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--embedding] -file_filter = .//LC_MESSAGES/extending/embedding.po -trans.pt_BR = extending/embedding.po -source_file = /pot/extending/embedding.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--extending] -file_filter = .//LC_MESSAGES/extending/extending.po -trans.pt_BR = extending/extending.po -source_file = /pot/extending/extending.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--index] -file_filter = .//LC_MESSAGES/extending/index.po -trans.pt_BR = extending/index.po -source_file = /pot/extending/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--newtypes] -file_filter = .//LC_MESSAGES/extending/newtypes.po -trans.pt_BR = extending/newtypes.po -source_file = /pot/extending/newtypes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--newtypes_tutorial] -file_filter = .//LC_MESSAGES/extending/newtypes_tutorial.po -trans.pt_BR = extending/newtypes_tutorial.po -source_file = /pot/extending/newtypes_tutorial.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:extending--windows] -file_filter = .//LC_MESSAGES/extending/windows.po -trans.pt_BR = extending/windows.po -source_file = /pot/extending/windows.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--design] -file_filter = .//LC_MESSAGES/faq/design.po -trans.pt_BR = faq/design.po -source_file = /pot/faq/design.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--extending] -file_filter = .//LC_MESSAGES/faq/extending.po -trans.pt_BR = faq/extending.po -source_file = /pot/faq/extending.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--general] -file_filter = .//LC_MESSAGES/faq/general.po -trans.pt_BR = faq/general.po -source_file = /pot/faq/general.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--gui] -file_filter = .//LC_MESSAGES/faq/gui.po -trans.pt_BR = faq/gui.po -source_file = /pot/faq/gui.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--index] -file_filter = .//LC_MESSAGES/faq/index.po -trans.pt_BR = faq/index.po -source_file = /pot/faq/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--installed] -file_filter = .//LC_MESSAGES/faq/installed.po -trans.pt_BR = faq/installed.po -source_file = /pot/faq/installed.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--library] -file_filter = .//LC_MESSAGES/faq/library.po -trans.pt_BR = faq/library.po -source_file = /pot/faq/library.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--programming] -file_filter = .//LC_MESSAGES/faq/programming.po -trans.pt_BR = faq/programming.po -source_file = /pot/faq/programming.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:faq--windows] -file_filter = .//LC_MESSAGES/faq/windows.po -trans.pt_BR = faq/windows.po -source_file = /pot/faq/windows.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:glossary_] -file_filter = .//LC_MESSAGES/glossary.po -trans.pt_BR = glossary.po -source_file = /pot/glossary.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--annotations] -file_filter = .//LC_MESSAGES/howto/annotations.po -trans.pt_BR = howto/annotations.po -source_file = /pot/howto/annotations.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--argparse] -file_filter = .//LC_MESSAGES/howto/argparse.po -trans.pt_BR = howto/argparse.po -source_file = /pot/howto/argparse.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--clinic] -file_filter = .//LC_MESSAGES/howto/clinic.po -trans.pt_BR = howto/clinic.po -source_file = /pot/howto/clinic.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--cporting] -file_filter = .//LC_MESSAGES/howto/cporting.po -trans.pt_BR = howto/cporting.po -source_file = /pot/howto/cporting.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--curses] -file_filter = .//LC_MESSAGES/howto/curses.po -trans.pt_BR = howto/curses.po -source_file = /pot/howto/curses.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--descriptor] -file_filter = .//LC_MESSAGES/howto/descriptor.po -trans.pt_BR = howto/descriptor.po -source_file = /pot/howto/descriptor.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--enum] -file_filter = .//LC_MESSAGES/howto/enum.po -trans.pt_BR = howto/enum.po -source_file = /pot/howto/enum.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--functional] -file_filter = .//LC_MESSAGES/howto/functional.po -trans.pt_BR = howto/functional.po -source_file = /pot/howto/functional.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--gdb_helpers] -file_filter = .//LC_MESSAGES/howto/gdb_helpers.po -trans.pt_BR = howto/gdb_helpers.po -source_file = /pot/howto/gdb_helpers.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--index] -file_filter = .//LC_MESSAGES/howto/index.po -trans.pt_BR = howto/index.po -source_file = /pot/howto/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--instrumentation] -file_filter = .//LC_MESSAGES/howto/instrumentation.po -trans.pt_BR = howto/instrumentation.po -source_file = /pot/howto/instrumentation.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--ipaddress] -file_filter = .//LC_MESSAGES/howto/ipaddress.po -trans.pt_BR = howto/ipaddress.po -source_file = /pot/howto/ipaddress.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--isolating-extensions] -file_filter = .//LC_MESSAGES/howto/isolating-extensions.po -trans.pt_BR = howto/isolating-extensions.po -source_file = /pot/howto/isolating-extensions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--logging] -file_filter = .//LC_MESSAGES/howto/logging.po -trans.pt_BR = howto/logging.po -source_file = /pot/howto/logging.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--logging-cookbook] -file_filter = .//LC_MESSAGES/howto/logging-cookbook.po -trans.pt_BR = howto/logging-cookbook.po -source_file = /pot/howto/logging-cookbook.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--mro] -file_filter = .//LC_MESSAGES/howto/mro.po -trans.pt_BR = howto/mro.po -source_file = /pot/howto/mro.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--perf_profiling] -file_filter = .//LC_MESSAGES/howto/perf_profiling.po -trans.pt_BR = howto/perf_profiling.po -source_file = /pot/howto/perf_profiling.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--pyporting] -file_filter = .//LC_MESSAGES/howto/pyporting.po -trans.pt_BR = howto/pyporting.po -source_file = /pot/howto/pyporting.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--regex] -file_filter = .//LC_MESSAGES/howto/regex.po -trans.pt_BR = howto/regex.po -source_file = /pot/howto/regex.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--sockets] -file_filter = .//LC_MESSAGES/howto/sockets.po -trans.pt_BR = howto/sockets.po -source_file = /pot/howto/sockets.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--sorting] -file_filter = .//LC_MESSAGES/howto/sorting.po -trans.pt_BR = howto/sorting.po -source_file = /pot/howto/sorting.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--unicode] -file_filter = .//LC_MESSAGES/howto/unicode.po -trans.pt_BR = howto/unicode.po -source_file = /pot/howto/unicode.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:howto--urllib2] -file_filter = .//LC_MESSAGES/howto/urllib2.po -trans.pt_BR = howto/urllib2.po -source_file = /pot/howto/urllib2.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:installing--index] -file_filter = .//LC_MESSAGES/installing/index.po -trans.pt_BR = installing/index.po -source_file = /pot/installing/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--2to3] -file_filter = .//LC_MESSAGES/library/2to3.po -trans.pt_BR = library/2to3.po -source_file = /pot/library/2to3.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--__future__] -file_filter = .//LC_MESSAGES/library/__future__.po -trans.pt_BR = library/__future__.po -source_file = /pot/library/__future__.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--__main__] -file_filter = .//LC_MESSAGES/library/__main__.po -trans.pt_BR = library/__main__.po -source_file = /pot/library/__main__.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--_thread] -file_filter = .//LC_MESSAGES/library/_thread.po -trans.pt_BR = library/_thread.po -source_file = /pot/library/_thread.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--abc] -file_filter = .//LC_MESSAGES/library/abc.po -trans.pt_BR = library/abc.po -source_file = /pot/library/abc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--aifc] -file_filter = .//LC_MESSAGES/library/aifc.po -trans.pt_BR = library/aifc.po -source_file = /pot/library/aifc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--allos] -file_filter = .//LC_MESSAGES/library/allos.po -trans.pt_BR = library/allos.po -source_file = /pot/library/allos.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--archiving] -file_filter = .//LC_MESSAGES/library/archiving.po -trans.pt_BR = library/archiving.po -source_file = /pot/library/archiving.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--argparse] -file_filter = .//LC_MESSAGES/library/argparse.po -trans.pt_BR = library/argparse.po -source_file = /pot/library/argparse.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--array] -file_filter = .//LC_MESSAGES/library/array.po -trans.pt_BR = library/array.po -source_file = /pot/library/array.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ast] -file_filter = .//LC_MESSAGES/library/ast.po -trans.pt_BR = library/ast.po -source_file = /pot/library/ast.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio] -file_filter = .//LC_MESSAGES/library/asyncio.po -trans.pt_BR = library/asyncio.po -source_file = /pot/library/asyncio.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-api-index] -file_filter = .//LC_MESSAGES/library/asyncio-api-index.po -trans.pt_BR = library/asyncio-api-index.po -source_file = /pot/library/asyncio-api-index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-dev] -file_filter = .//LC_MESSAGES/library/asyncio-dev.po -trans.pt_BR = library/asyncio-dev.po -source_file = /pot/library/asyncio-dev.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-eventloop] -file_filter = .//LC_MESSAGES/library/asyncio-eventloop.po -trans.pt_BR = library/asyncio-eventloop.po -source_file = /pot/library/asyncio-eventloop.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-exceptions] -file_filter = .//LC_MESSAGES/library/asyncio-exceptions.po -trans.pt_BR = library/asyncio-exceptions.po -source_file = /pot/library/asyncio-exceptions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-extending] -file_filter = .//LC_MESSAGES/library/asyncio-extending.po -trans.pt_BR = library/asyncio-extending.po -source_file = /pot/library/asyncio-extending.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-future] -file_filter = .//LC_MESSAGES/library/asyncio-future.po -trans.pt_BR = library/asyncio-future.po -source_file = /pot/library/asyncio-future.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-llapi-index] -file_filter = .//LC_MESSAGES/library/asyncio-llapi-index.po -trans.pt_BR = library/asyncio-llapi-index.po -source_file = /pot/library/asyncio-llapi-index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-platforms] -file_filter = .//LC_MESSAGES/library/asyncio-platforms.po -trans.pt_BR = library/asyncio-platforms.po -source_file = /pot/library/asyncio-platforms.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-policy] -file_filter = .//LC_MESSAGES/library/asyncio-policy.po -trans.pt_BR = library/asyncio-policy.po -source_file = /pot/library/asyncio-policy.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-protocol] -file_filter = .//LC_MESSAGES/library/asyncio-protocol.po -trans.pt_BR = library/asyncio-protocol.po -source_file = /pot/library/asyncio-protocol.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-queue] -file_filter = .//LC_MESSAGES/library/asyncio-queue.po -trans.pt_BR = library/asyncio-queue.po -source_file = /pot/library/asyncio-queue.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-runner] -file_filter = .//LC_MESSAGES/library/asyncio-runner.po -trans.pt_BR = library/asyncio-runner.po -source_file = /pot/library/asyncio-runner.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-stream] -file_filter = .//LC_MESSAGES/library/asyncio-stream.po -trans.pt_BR = library/asyncio-stream.po -source_file = /pot/library/asyncio-stream.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-subprocess] -file_filter = .//LC_MESSAGES/library/asyncio-subprocess.po -trans.pt_BR = library/asyncio-subprocess.po -source_file = /pot/library/asyncio-subprocess.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-sync] -file_filter = .//LC_MESSAGES/library/asyncio-sync.po -trans.pt_BR = library/asyncio-sync.po -source_file = /pot/library/asyncio-sync.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--asyncio-task] -file_filter = .//LC_MESSAGES/library/asyncio-task.po -trans.pt_BR = library/asyncio-task.po -source_file = /pot/library/asyncio-task.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--atexit] -file_filter = .//LC_MESSAGES/library/atexit.po -trans.pt_BR = library/atexit.po -source_file = /pot/library/atexit.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--audioop] -file_filter = .//LC_MESSAGES/library/audioop.po -trans.pt_BR = library/audioop.po -source_file = /pot/library/audioop.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--audit_events] -file_filter = .//LC_MESSAGES/library/audit_events.po -trans.pt_BR = library/audit_events.po -source_file = /pot/library/audit_events.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--base64] -file_filter = .//LC_MESSAGES/library/base64.po -trans.pt_BR = library/base64.po -source_file = /pot/library/base64.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--bdb] -file_filter = .//LC_MESSAGES/library/bdb.po -trans.pt_BR = library/bdb.po -source_file = /pot/library/bdb.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--binary] -file_filter = .//LC_MESSAGES/library/binary.po -trans.pt_BR = library/binary.po -source_file = /pot/library/binary.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--binascii] -file_filter = .//LC_MESSAGES/library/binascii.po -trans.pt_BR = library/binascii.po -source_file = /pot/library/binascii.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--bisect] -file_filter = .//LC_MESSAGES/library/bisect.po -trans.pt_BR = library/bisect.po -source_file = /pot/library/bisect.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--builtins] -file_filter = .//LC_MESSAGES/library/builtins.po -trans.pt_BR = library/builtins.po -source_file = /pot/library/builtins.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--bz2] -file_filter = .//LC_MESSAGES/library/bz2.po -trans.pt_BR = library/bz2.po -source_file = /pot/library/bz2.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--calendar] -file_filter = .//LC_MESSAGES/library/calendar.po -trans.pt_BR = library/calendar.po -source_file = /pot/library/calendar.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--cgi] -file_filter = .//LC_MESSAGES/library/cgi.po -trans.pt_BR = library/cgi.po -source_file = /pot/library/cgi.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--cgitb] -file_filter = .//LC_MESSAGES/library/cgitb.po -trans.pt_BR = library/cgitb.po -source_file = /pot/library/cgitb.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--chunk] -file_filter = .//LC_MESSAGES/library/chunk.po -trans.pt_BR = library/chunk.po -source_file = /pot/library/chunk.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--cmath] -file_filter = .//LC_MESSAGES/library/cmath.po -trans.pt_BR = library/cmath.po -source_file = /pot/library/cmath.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--cmd] -file_filter = .//LC_MESSAGES/library/cmd.po -trans.pt_BR = library/cmd.po -source_file = /pot/library/cmd.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--cmdline] -file_filter = .//LC_MESSAGES/library/cmdline.po -trans.pt_BR = library/cmdline.po -source_file = /pot/library/cmdline.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--code] -file_filter = .//LC_MESSAGES/library/code.po -trans.pt_BR = library/code.po -source_file = /pot/library/code.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--codecs] -file_filter = .//LC_MESSAGES/library/codecs.po -trans.pt_BR = library/codecs.po -source_file = /pot/library/codecs.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--codeop] -file_filter = .//LC_MESSAGES/library/codeop.po -trans.pt_BR = library/codeop.po -source_file = /pot/library/codeop.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--collections] -file_filter = .//LC_MESSAGES/library/collections.po -trans.pt_BR = library/collections.po -source_file = /pot/library/collections.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--collections_abc] -file_filter = .//LC_MESSAGES/library/collections.abc.po -trans.pt_BR = library/collections.abc.po -source_file = /pot/library/collections.abc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--colorsys] -file_filter = .//LC_MESSAGES/library/colorsys.po -trans.pt_BR = library/colorsys.po -source_file = /pot/library/colorsys.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--compileall] -file_filter = .//LC_MESSAGES/library/compileall.po -trans.pt_BR = library/compileall.po -source_file = /pot/library/compileall.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--concurrency] -file_filter = .//LC_MESSAGES/library/concurrency.po -trans.pt_BR = library/concurrency.po -source_file = /pot/library/concurrency.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--concurrent] -file_filter = .//LC_MESSAGES/library/concurrent.po -trans.pt_BR = library/concurrent.po -source_file = /pot/library/concurrent.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--concurrent_futures] -file_filter = .//LC_MESSAGES/library/concurrent.futures.po -trans.pt_BR = library/concurrent.futures.po -source_file = /pot/library/concurrent.futures.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--configparser] -file_filter = .//LC_MESSAGES/library/configparser.po -trans.pt_BR = library/configparser.po -source_file = /pot/library/configparser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--constants] -file_filter = .//LC_MESSAGES/library/constants.po -trans.pt_BR = library/constants.po -source_file = /pot/library/constants.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--contextlib] -file_filter = .//LC_MESSAGES/library/contextlib.po -trans.pt_BR = library/contextlib.po -source_file = /pot/library/contextlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--contextvars] -file_filter = .//LC_MESSAGES/library/contextvars.po -trans.pt_BR = library/contextvars.po -source_file = /pot/library/contextvars.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--copy] -file_filter = .//LC_MESSAGES/library/copy.po -trans.pt_BR = library/copy.po -source_file = /pot/library/copy.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--copyreg] -file_filter = .//LC_MESSAGES/library/copyreg.po -trans.pt_BR = library/copyreg.po -source_file = /pot/library/copyreg.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--crypt] -file_filter = .//LC_MESSAGES/library/crypt.po -trans.pt_BR = library/crypt.po -source_file = /pot/library/crypt.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--crypto] -file_filter = .//LC_MESSAGES/library/crypto.po -trans.pt_BR = library/crypto.po -source_file = /pot/library/crypto.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--csv] -file_filter = .//LC_MESSAGES/library/csv.po -trans.pt_BR = library/csv.po -source_file = /pot/library/csv.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ctypes] -file_filter = .//LC_MESSAGES/library/ctypes.po -trans.pt_BR = library/ctypes.po -source_file = /pot/library/ctypes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--curses] -file_filter = .//LC_MESSAGES/library/curses.po -trans.pt_BR = library/curses.po -source_file = /pot/library/curses.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--curses_ascii] -file_filter = .//LC_MESSAGES/library/curses.ascii.po -trans.pt_BR = library/curses.ascii.po -source_file = /pot/library/curses.ascii.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--curses_panel] -file_filter = .//LC_MESSAGES/library/curses.panel.po -trans.pt_BR = library/curses.panel.po -source_file = /pot/library/curses.panel.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--custominterp] -file_filter = .//LC_MESSAGES/library/custominterp.po -trans.pt_BR = library/custominterp.po -source_file = /pot/library/custominterp.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--dataclasses] -file_filter = .//LC_MESSAGES/library/dataclasses.po -trans.pt_BR = library/dataclasses.po -source_file = /pot/library/dataclasses.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--datatypes] -file_filter = .//LC_MESSAGES/library/datatypes.po -trans.pt_BR = library/datatypes.po -source_file = /pot/library/datatypes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--datetime] -file_filter = .//LC_MESSAGES/library/datetime.po -trans.pt_BR = library/datetime.po -source_file = /pot/library/datetime.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--dbm] -file_filter = .//LC_MESSAGES/library/dbm.po -trans.pt_BR = library/dbm.po -source_file = /pot/library/dbm.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--debug] -file_filter = .//LC_MESSAGES/library/debug.po -trans.pt_BR = library/debug.po -source_file = /pot/library/debug.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--decimal] -file_filter = .//LC_MESSAGES/library/decimal.po -trans.pt_BR = library/decimal.po -source_file = /pot/library/decimal.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--development] -file_filter = .//LC_MESSAGES/library/development.po -trans.pt_BR = library/development.po -source_file = /pot/library/development.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--devmode] -file_filter = .//LC_MESSAGES/library/devmode.po -trans.pt_BR = library/devmode.po -source_file = /pot/library/devmode.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--dialog] -file_filter = .//LC_MESSAGES/library/dialog.po -trans.pt_BR = library/dialog.po -source_file = /pot/library/dialog.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--difflib] -file_filter = .//LC_MESSAGES/library/difflib.po -trans.pt_BR = library/difflib.po -source_file = /pot/library/difflib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--dis] -file_filter = .//LC_MESSAGES/library/dis.po -trans.pt_BR = library/dis.po -source_file = /pot/library/dis.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--distribution] -file_filter = .//LC_MESSAGES/library/distribution.po -trans.pt_BR = library/distribution.po -source_file = /pot/library/distribution.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--doctest] -file_filter = .//LC_MESSAGES/library/doctest.po -trans.pt_BR = library/doctest.po -source_file = /pot/library/doctest.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email] -file_filter = .//LC_MESSAGES/library/email.po -trans.pt_BR = library/email.po -source_file = /pot/library/email.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_charset] -file_filter = .//LC_MESSAGES/library/email.charset.po -trans.pt_BR = library/email.charset.po -source_file = /pot/library/email.charset.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_compat32-message] -file_filter = .//LC_MESSAGES/library/email.compat32-message.po -trans.pt_BR = library/email.compat32-message.po -source_file = /pot/library/email.compat32-message.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_contentmanager] -file_filter = .//LC_MESSAGES/library/email.contentmanager.po -trans.pt_BR = library/email.contentmanager.po -source_file = /pot/library/email.contentmanager.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_encoders] -file_filter = .//LC_MESSAGES/library/email.encoders.po -trans.pt_BR = library/email.encoders.po -source_file = /pot/library/email.encoders.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_errors] -file_filter = .//LC_MESSAGES/library/email.errors.po -trans.pt_BR = library/email.errors.po -source_file = /pot/library/email.errors.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_examples] -file_filter = .//LC_MESSAGES/library/email.examples.po -trans.pt_BR = library/email.examples.po -source_file = /pot/library/email.examples.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_generator] -file_filter = .//LC_MESSAGES/library/email.generator.po -trans.pt_BR = library/email.generator.po -source_file = /pot/library/email.generator.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_header] -file_filter = .//LC_MESSAGES/library/email.header.po -trans.pt_BR = library/email.header.po -source_file = /pot/library/email.header.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_headerregistry] -file_filter = .//LC_MESSAGES/library/email.headerregistry.po -trans.pt_BR = library/email.headerregistry.po -source_file = /pot/library/email.headerregistry.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_iterators] -file_filter = .//LC_MESSAGES/library/email.iterators.po -trans.pt_BR = library/email.iterators.po -source_file = /pot/library/email.iterators.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_message] -file_filter = .//LC_MESSAGES/library/email.message.po -trans.pt_BR = library/email.message.po -source_file = /pot/library/email.message.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_mime] -file_filter = .//LC_MESSAGES/library/email.mime.po -trans.pt_BR = library/email.mime.po -source_file = /pot/library/email.mime.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_parser] -file_filter = .//LC_MESSAGES/library/email.parser.po -trans.pt_BR = library/email.parser.po -source_file = /pot/library/email.parser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_policy] -file_filter = .//LC_MESSAGES/library/email.policy.po -trans.pt_BR = library/email.policy.po -source_file = /pot/library/email.policy.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--email_utils] -file_filter = .//LC_MESSAGES/library/email.utils.po -trans.pt_BR = library/email.utils.po -source_file = /pot/library/email.utils.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ensurepip] -file_filter = .//LC_MESSAGES/library/ensurepip.po -trans.pt_BR = library/ensurepip.po -source_file = /pot/library/ensurepip.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--enum] -file_filter = .//LC_MESSAGES/library/enum.po -trans.pt_BR = library/enum.po -source_file = /pot/library/enum.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--errno] -file_filter = .//LC_MESSAGES/library/errno.po -trans.pt_BR = library/errno.po -source_file = /pot/library/errno.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--exceptions] -file_filter = .//LC_MESSAGES/library/exceptions.po -trans.pt_BR = library/exceptions.po -source_file = /pot/library/exceptions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--faulthandler] -file_filter = .//LC_MESSAGES/library/faulthandler.po -trans.pt_BR = library/faulthandler.po -source_file = /pot/library/faulthandler.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--fcntl] -file_filter = .//LC_MESSAGES/library/fcntl.po -trans.pt_BR = library/fcntl.po -source_file = /pot/library/fcntl.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--filecmp] -file_filter = .//LC_MESSAGES/library/filecmp.po -trans.pt_BR = library/filecmp.po -source_file = /pot/library/filecmp.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--fileformats] -file_filter = .//LC_MESSAGES/library/fileformats.po -trans.pt_BR = library/fileformats.po -source_file = /pot/library/fileformats.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--fileinput] -file_filter = .//LC_MESSAGES/library/fileinput.po -trans.pt_BR = library/fileinput.po -source_file = /pot/library/fileinput.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--filesys] -file_filter = .//LC_MESSAGES/library/filesys.po -trans.pt_BR = library/filesys.po -source_file = /pot/library/filesys.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--fnmatch] -file_filter = .//LC_MESSAGES/library/fnmatch.po -trans.pt_BR = library/fnmatch.po -source_file = /pot/library/fnmatch.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--fractions] -file_filter = .//LC_MESSAGES/library/fractions.po -trans.pt_BR = library/fractions.po -source_file = /pot/library/fractions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--frameworks] -file_filter = .//LC_MESSAGES/library/frameworks.po -trans.pt_BR = library/frameworks.po -source_file = /pot/library/frameworks.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ftplib] -file_filter = .//LC_MESSAGES/library/ftplib.po -trans.pt_BR = library/ftplib.po -source_file = /pot/library/ftplib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--functional] -file_filter = .//LC_MESSAGES/library/functional.po -trans.pt_BR = library/functional.po -source_file = /pot/library/functional.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--functions] -file_filter = .//LC_MESSAGES/library/functions.po -trans.pt_BR = library/functions.po -source_file = /pot/library/functions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--functools] -file_filter = .//LC_MESSAGES/library/functools.po -trans.pt_BR = library/functools.po -source_file = /pot/library/functools.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--gc] -file_filter = .//LC_MESSAGES/library/gc.po -trans.pt_BR = library/gc.po -source_file = /pot/library/gc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--getopt] -file_filter = .//LC_MESSAGES/library/getopt.po -trans.pt_BR = library/getopt.po -source_file = /pot/library/getopt.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--getpass] -file_filter = .//LC_MESSAGES/library/getpass.po -trans.pt_BR = library/getpass.po -source_file = /pot/library/getpass.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--gettext] -file_filter = .//LC_MESSAGES/library/gettext.po -trans.pt_BR = library/gettext.po -source_file = /pot/library/gettext.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--glob] -file_filter = .//LC_MESSAGES/library/glob.po -trans.pt_BR = library/glob.po -source_file = /pot/library/glob.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--graphlib] -file_filter = .//LC_MESSAGES/library/graphlib.po -trans.pt_BR = library/graphlib.po -source_file = /pot/library/graphlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--grp] -file_filter = .//LC_MESSAGES/library/grp.po -trans.pt_BR = library/grp.po -source_file = /pot/library/grp.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--gzip] -file_filter = .//LC_MESSAGES/library/gzip.po -trans.pt_BR = library/gzip.po -source_file = /pot/library/gzip.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--hashlib] -file_filter = .//LC_MESSAGES/library/hashlib.po -trans.pt_BR = library/hashlib.po -source_file = /pot/library/hashlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--heapq] -file_filter = .//LC_MESSAGES/library/heapq.po -trans.pt_BR = library/heapq.po -source_file = /pot/library/heapq.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--hmac] -file_filter = .//LC_MESSAGES/library/hmac.po -trans.pt_BR = library/hmac.po -source_file = /pot/library/hmac.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--html] -file_filter = .//LC_MESSAGES/library/html.po -trans.pt_BR = library/html.po -source_file = /pot/library/html.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--html_entities] -file_filter = .//LC_MESSAGES/library/html.entities.po -trans.pt_BR = library/html.entities.po -source_file = /pot/library/html.entities.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--html_parser] -file_filter = .//LC_MESSAGES/library/html.parser.po -trans.pt_BR = library/html.parser.po -source_file = /pot/library/html.parser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--http] -file_filter = .//LC_MESSAGES/library/http.po -trans.pt_BR = library/http.po -source_file = /pot/library/http.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--http_client] -file_filter = .//LC_MESSAGES/library/http.client.po -trans.pt_BR = library/http.client.po -source_file = /pot/library/http.client.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--http_cookiejar] -file_filter = .//LC_MESSAGES/library/http.cookiejar.po -trans.pt_BR = library/http.cookiejar.po -source_file = /pot/library/http.cookiejar.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--http_cookies] -file_filter = .//LC_MESSAGES/library/http.cookies.po -trans.pt_BR = library/http.cookies.po -source_file = /pot/library/http.cookies.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--http_server] -file_filter = .//LC_MESSAGES/library/http.server.po -trans.pt_BR = library/http.server.po -source_file = /pot/library/http.server.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--i18n] -file_filter = .//LC_MESSAGES/library/i18n.po -trans.pt_BR = library/i18n.po -source_file = /pot/library/i18n.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--idle] -file_filter = .//LC_MESSAGES/library/idle.po -trans.pt_BR = library/idle.po -source_file = /pot/library/idle.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--imaplib] -file_filter = .//LC_MESSAGES/library/imaplib.po -trans.pt_BR = library/imaplib.po -source_file = /pot/library/imaplib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--imghdr] -file_filter = .//LC_MESSAGES/library/imghdr.po -trans.pt_BR = library/imghdr.po -source_file = /pot/library/imghdr.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--importlib] -file_filter = .//LC_MESSAGES/library/importlib.po -trans.pt_BR = library/importlib.po -source_file = /pot/library/importlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--importlib_metadata] -file_filter = .//LC_MESSAGES/library/importlib.metadata.po -trans.pt_BR = library/importlib.metadata.po -source_file = /pot/library/importlib.metadata.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--importlib_resources] -file_filter = .//LC_MESSAGES/library/importlib.resources.po -trans.pt_BR = library/importlib.resources.po -source_file = /pot/library/importlib.resources.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--importlib_resources_abc] -file_filter = .//LC_MESSAGES/library/importlib.resources.abc.po -trans.pt_BR = library/importlib.resources.abc.po -source_file = /pot/library/importlib.resources.abc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--index] -file_filter = .//LC_MESSAGES/library/index.po -trans.pt_BR = library/index.po -source_file = /pot/library/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--inspect] -file_filter = .//LC_MESSAGES/library/inspect.po -trans.pt_BR = library/inspect.po -source_file = /pot/library/inspect.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--internet] -file_filter = .//LC_MESSAGES/library/internet.po -trans.pt_BR = library/internet.po -source_file = /pot/library/internet.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--intro] -file_filter = .//LC_MESSAGES/library/intro.po -trans.pt_BR = library/intro.po -source_file = /pot/library/intro.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--io] -file_filter = .//LC_MESSAGES/library/io.po -trans.pt_BR = library/io.po -source_file = /pot/library/io.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ipaddress] -file_filter = .//LC_MESSAGES/library/ipaddress.po -trans.pt_BR = library/ipaddress.po -source_file = /pot/library/ipaddress.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ipc] -file_filter = .//LC_MESSAGES/library/ipc.po -trans.pt_BR = library/ipc.po -source_file = /pot/library/ipc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--itertools] -file_filter = .//LC_MESSAGES/library/itertools.po -trans.pt_BR = library/itertools.po -source_file = /pot/library/itertools.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--json] -file_filter = .//LC_MESSAGES/library/json.po -trans.pt_BR = library/json.po -source_file = /pot/library/json.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--keyword] -file_filter = .//LC_MESSAGES/library/keyword.po -trans.pt_BR = library/keyword.po -source_file = /pot/library/keyword.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--language] -file_filter = .//LC_MESSAGES/library/language.po -trans.pt_BR = library/language.po -source_file = /pot/library/language.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--linecache] -file_filter = .//LC_MESSAGES/library/linecache.po -trans.pt_BR = library/linecache.po -source_file = /pot/library/linecache.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--locale] -file_filter = .//LC_MESSAGES/library/locale.po -trans.pt_BR = library/locale.po -source_file = /pot/library/locale.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--logging] -file_filter = .//LC_MESSAGES/library/logging.po -trans.pt_BR = library/logging.po -source_file = /pot/library/logging.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--logging_config] -file_filter = .//LC_MESSAGES/library/logging.config.po -trans.pt_BR = library/logging.config.po -source_file = /pot/library/logging.config.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--logging_handlers] -file_filter = .//LC_MESSAGES/library/logging.handlers.po -trans.pt_BR = library/logging.handlers.po -source_file = /pot/library/logging.handlers.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--lzma] -file_filter = .//LC_MESSAGES/library/lzma.po -trans.pt_BR = library/lzma.po -source_file = /pot/library/lzma.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--mailbox] -file_filter = .//LC_MESSAGES/library/mailbox.po -trans.pt_BR = library/mailbox.po -source_file = /pot/library/mailbox.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--mailcap] -file_filter = .//LC_MESSAGES/library/mailcap.po -trans.pt_BR = library/mailcap.po -source_file = /pot/library/mailcap.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--markup] -file_filter = .//LC_MESSAGES/library/markup.po -trans.pt_BR = library/markup.po -source_file = /pot/library/markup.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--marshal] -file_filter = .//LC_MESSAGES/library/marshal.po -trans.pt_BR = library/marshal.po -source_file = /pot/library/marshal.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--math] -file_filter = .//LC_MESSAGES/library/math.po -trans.pt_BR = library/math.po -source_file = /pot/library/math.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--mimetypes] -file_filter = .//LC_MESSAGES/library/mimetypes.po -trans.pt_BR = library/mimetypes.po -source_file = /pot/library/mimetypes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--mm] -file_filter = .//LC_MESSAGES/library/mm.po -trans.pt_BR = library/mm.po -source_file = /pot/library/mm.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--mmap] -file_filter = .//LC_MESSAGES/library/mmap.po -trans.pt_BR = library/mmap.po -source_file = /pot/library/mmap.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--modulefinder] -file_filter = .//LC_MESSAGES/library/modulefinder.po -trans.pt_BR = library/modulefinder.po -source_file = /pot/library/modulefinder.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--modules] -file_filter = .//LC_MESSAGES/library/modules.po -trans.pt_BR = library/modules.po -source_file = /pot/library/modules.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--msilib] -file_filter = .//LC_MESSAGES/library/msilib.po -trans.pt_BR = library/msilib.po -source_file = /pot/library/msilib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--msvcrt] -file_filter = .//LC_MESSAGES/library/msvcrt.po -trans.pt_BR = library/msvcrt.po -source_file = /pot/library/msvcrt.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--multiprocessing] -file_filter = .//LC_MESSAGES/library/multiprocessing.po -trans.pt_BR = library/multiprocessing.po -source_file = /pot/library/multiprocessing.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--multiprocessing_shared_memory] -file_filter = .//LC_MESSAGES/library/multiprocessing.shared_memory.po -trans.pt_BR = library/multiprocessing.shared_memory.po -source_file = /pot/library/multiprocessing.shared_memory.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--netdata] -file_filter = .//LC_MESSAGES/library/netdata.po -trans.pt_BR = library/netdata.po -source_file = /pot/library/netdata.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--netrc] -file_filter = .//LC_MESSAGES/library/netrc.po -trans.pt_BR = library/netrc.po -source_file = /pot/library/netrc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--nis] -file_filter = .//LC_MESSAGES/library/nis.po -trans.pt_BR = library/nis.po -source_file = /pot/library/nis.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--nntplib] -file_filter = .//LC_MESSAGES/library/nntplib.po -trans.pt_BR = library/nntplib.po -source_file = /pot/library/nntplib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--numbers] -file_filter = .//LC_MESSAGES/library/numbers.po -trans.pt_BR = library/numbers.po -source_file = /pot/library/numbers.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--numeric] -file_filter = .//LC_MESSAGES/library/numeric.po -trans.pt_BR = library/numeric.po -source_file = /pot/library/numeric.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--operator] -file_filter = .//LC_MESSAGES/library/operator.po -trans.pt_BR = library/operator.po -source_file = /pot/library/operator.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--optparse] -file_filter = .//LC_MESSAGES/library/optparse.po -trans.pt_BR = library/optparse.po -source_file = /pot/library/optparse.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--os] -file_filter = .//LC_MESSAGES/library/os.po -trans.pt_BR = library/os.po -source_file = /pot/library/os.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--os_path] -file_filter = .//LC_MESSAGES/library/os.path.po -trans.pt_BR = library/os.path.po -source_file = /pot/library/os.path.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ossaudiodev] -file_filter = .//LC_MESSAGES/library/ossaudiodev.po -trans.pt_BR = library/ossaudiodev.po -source_file = /pot/library/ossaudiodev.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pathlib] -file_filter = .//LC_MESSAGES/library/pathlib.po -trans.pt_BR = library/pathlib.po -source_file = /pot/library/pathlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pdb] -file_filter = .//LC_MESSAGES/library/pdb.po -trans.pt_BR = library/pdb.po -source_file = /pot/library/pdb.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--persistence] -file_filter = .//LC_MESSAGES/library/persistence.po -trans.pt_BR = library/persistence.po -source_file = /pot/library/persistence.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pickle] -file_filter = .//LC_MESSAGES/library/pickle.po -trans.pt_BR = library/pickle.po -source_file = /pot/library/pickle.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pickletools] -file_filter = .//LC_MESSAGES/library/pickletools.po -trans.pt_BR = library/pickletools.po -source_file = /pot/library/pickletools.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pipes] -file_filter = .//LC_MESSAGES/library/pipes.po -trans.pt_BR = library/pipes.po -source_file = /pot/library/pipes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pkgutil] -file_filter = .//LC_MESSAGES/library/pkgutil.po -trans.pt_BR = library/pkgutil.po -source_file = /pot/library/pkgutil.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--platform] -file_filter = .//LC_MESSAGES/library/platform.po -trans.pt_BR = library/platform.po -source_file = /pot/library/platform.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--plistlib] -file_filter = .//LC_MESSAGES/library/plistlib.po -trans.pt_BR = library/plistlib.po -source_file = /pot/library/plistlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--poplib] -file_filter = .//LC_MESSAGES/library/poplib.po -trans.pt_BR = library/poplib.po -source_file = /pot/library/poplib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--posix] -file_filter = .//LC_MESSAGES/library/posix.po -trans.pt_BR = library/posix.po -source_file = /pot/library/posix.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pprint] -file_filter = .//LC_MESSAGES/library/pprint.po -trans.pt_BR = library/pprint.po -source_file = /pot/library/pprint.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--profile] -file_filter = .//LC_MESSAGES/library/profile.po -trans.pt_BR = library/profile.po -source_file = /pot/library/profile.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pty] -file_filter = .//LC_MESSAGES/library/pty.po -trans.pt_BR = library/pty.po -source_file = /pot/library/pty.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pwd] -file_filter = .//LC_MESSAGES/library/pwd.po -trans.pt_BR = library/pwd.po -source_file = /pot/library/pwd.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--py_compile] -file_filter = .//LC_MESSAGES/library/py_compile.po -trans.pt_BR = library/py_compile.po -source_file = /pot/library/py_compile.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pyclbr] -file_filter = .//LC_MESSAGES/library/pyclbr.po -trans.pt_BR = library/pyclbr.po -source_file = /pot/library/pyclbr.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pydoc] -file_filter = .//LC_MESSAGES/library/pydoc.po -trans.pt_BR = library/pydoc.po -source_file = /pot/library/pydoc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--pyexpat] -file_filter = .//LC_MESSAGES/library/pyexpat.po -trans.pt_BR = library/pyexpat.po -source_file = /pot/library/pyexpat.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--python] -file_filter = .//LC_MESSAGES/library/python.po -trans.pt_BR = library/python.po -source_file = /pot/library/python.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--queue] -file_filter = .//LC_MESSAGES/library/queue.po -trans.pt_BR = library/queue.po -source_file = /pot/library/queue.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--quopri] -file_filter = .//LC_MESSAGES/library/quopri.po -trans.pt_BR = library/quopri.po -source_file = /pot/library/quopri.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--random] -file_filter = .//LC_MESSAGES/library/random.po -trans.pt_BR = library/random.po -source_file = /pot/library/random.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--re] -file_filter = .//LC_MESSAGES/library/re.po -trans.pt_BR = library/re.po -source_file = /pot/library/re.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--readline] -file_filter = .//LC_MESSAGES/library/readline.po -trans.pt_BR = library/readline.po -source_file = /pot/library/readline.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--reprlib] -file_filter = .//LC_MESSAGES/library/reprlib.po -trans.pt_BR = library/reprlib.po -source_file = /pot/library/reprlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--resource] -file_filter = .//LC_MESSAGES/library/resource.po -trans.pt_BR = library/resource.po -source_file = /pot/library/resource.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--rlcompleter] -file_filter = .//LC_MESSAGES/library/rlcompleter.po -trans.pt_BR = library/rlcompleter.po -source_file = /pot/library/rlcompleter.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--runpy] -file_filter = .//LC_MESSAGES/library/runpy.po -trans.pt_BR = library/runpy.po -source_file = /pot/library/runpy.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sched] -file_filter = .//LC_MESSAGES/library/sched.po -trans.pt_BR = library/sched.po -source_file = /pot/library/sched.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--secrets] -file_filter = .//LC_MESSAGES/library/secrets.po -trans.pt_BR = library/secrets.po -source_file = /pot/library/secrets.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--security_warnings] -file_filter = .//LC_MESSAGES/library/security_warnings.po -trans.pt_BR = library/security_warnings.po -source_file = /pot/library/security_warnings.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--select] -file_filter = .//LC_MESSAGES/library/select.po -trans.pt_BR = library/select.po -source_file = /pot/library/select.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--selectors] -file_filter = .//LC_MESSAGES/library/selectors.po -trans.pt_BR = library/selectors.po -source_file = /pot/library/selectors.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--shelve] -file_filter = .//LC_MESSAGES/library/shelve.po -trans.pt_BR = library/shelve.po -source_file = /pot/library/shelve.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--shlex] -file_filter = .//LC_MESSAGES/library/shlex.po -trans.pt_BR = library/shlex.po -source_file = /pot/library/shlex.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--shutil] -file_filter = .//LC_MESSAGES/library/shutil.po -trans.pt_BR = library/shutil.po -source_file = /pot/library/shutil.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--signal] -file_filter = .//LC_MESSAGES/library/signal.po -trans.pt_BR = library/signal.po -source_file = /pot/library/signal.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--site] -file_filter = .//LC_MESSAGES/library/site.po -trans.pt_BR = library/site.po -source_file = /pot/library/site.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--smtplib] -file_filter = .//LC_MESSAGES/library/smtplib.po -trans.pt_BR = library/smtplib.po -source_file = /pot/library/smtplib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sndhdr] -file_filter = .//LC_MESSAGES/library/sndhdr.po -trans.pt_BR = library/sndhdr.po -source_file = /pot/library/sndhdr.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--socket] -file_filter = .//LC_MESSAGES/library/socket.po -trans.pt_BR = library/socket.po -source_file = /pot/library/socket.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--socketserver] -file_filter = .//LC_MESSAGES/library/socketserver.po -trans.pt_BR = library/socketserver.po -source_file = /pot/library/socketserver.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--spwd] -file_filter = .//LC_MESSAGES/library/spwd.po -trans.pt_BR = library/spwd.po -source_file = /pot/library/spwd.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sqlite3] -file_filter = .//LC_MESSAGES/library/sqlite3.po -trans.pt_BR = library/sqlite3.po -source_file = /pot/library/sqlite3.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--ssl] -file_filter = .//LC_MESSAGES/library/ssl.po -trans.pt_BR = library/ssl.po -source_file = /pot/library/ssl.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--stat] -file_filter = .//LC_MESSAGES/library/stat.po -trans.pt_BR = library/stat.po -source_file = /pot/library/stat.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--statistics] -file_filter = .//LC_MESSAGES/library/statistics.po -trans.pt_BR = library/statistics.po -source_file = /pot/library/statistics.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--stdtypes] -file_filter = .//LC_MESSAGES/library/stdtypes.po -trans.pt_BR = library/stdtypes.po -source_file = /pot/library/stdtypes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--string] -file_filter = .//LC_MESSAGES/library/string.po -trans.pt_BR = library/string.po -source_file = /pot/library/string.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--stringprep] -file_filter = .//LC_MESSAGES/library/stringprep.po -trans.pt_BR = library/stringprep.po -source_file = /pot/library/stringprep.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--struct] -file_filter = .//LC_MESSAGES/library/struct.po -trans.pt_BR = library/struct.po -source_file = /pot/library/struct.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--subprocess] -file_filter = .//LC_MESSAGES/library/subprocess.po -trans.pt_BR = library/subprocess.po -source_file = /pot/library/subprocess.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sunau] -file_filter = .//LC_MESSAGES/library/sunau.po -trans.pt_BR = library/sunau.po -source_file = /pot/library/sunau.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--superseded] -file_filter = .//LC_MESSAGES/library/superseded.po -trans.pt_BR = library/superseded.po -source_file = /pot/library/superseded.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--symtable] -file_filter = .//LC_MESSAGES/library/symtable.po -trans.pt_BR = library/symtable.po -source_file = /pot/library/symtable.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sys] -file_filter = .//LC_MESSAGES/library/sys.po -trans.pt_BR = library/sys.po -source_file = /pot/library/sys.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sys_monitoring] -file_filter = .//LC_MESSAGES/library/sys.monitoring.po -trans.pt_BR = library/sys.monitoring.po -source_file = /pot/library/sys.monitoring.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sys_path_init] -file_filter = .//LC_MESSAGES/library/sys_path_init.po -trans.pt_BR = library/sys_path_init.po -source_file = /pot/library/sys_path_init.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--sysconfig] -file_filter = .//LC_MESSAGES/library/sysconfig.po -trans.pt_BR = library/sysconfig.po -source_file = /pot/library/sysconfig.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--syslog] -file_filter = .//LC_MESSAGES/library/syslog.po -trans.pt_BR = library/syslog.po -source_file = /pot/library/syslog.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tabnanny] -file_filter = .//LC_MESSAGES/library/tabnanny.po -trans.pt_BR = library/tabnanny.po -source_file = /pot/library/tabnanny.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tarfile] -file_filter = .//LC_MESSAGES/library/tarfile.po -trans.pt_BR = library/tarfile.po -source_file = /pot/library/tarfile.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--telnetlib] -file_filter = .//LC_MESSAGES/library/telnetlib.po -trans.pt_BR = library/telnetlib.po -source_file = /pot/library/telnetlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tempfile] -file_filter = .//LC_MESSAGES/library/tempfile.po -trans.pt_BR = library/tempfile.po -source_file = /pot/library/tempfile.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--termios] -file_filter = .//LC_MESSAGES/library/termios.po -trans.pt_BR = library/termios.po -source_file = /pot/library/termios.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--test] -file_filter = .//LC_MESSAGES/library/test.po -trans.pt_BR = library/test.po -source_file = /pot/library/test.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--text] -file_filter = .//LC_MESSAGES/library/text.po -trans.pt_BR = library/text.po -source_file = /pot/library/text.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--textwrap] -file_filter = .//LC_MESSAGES/library/textwrap.po -trans.pt_BR = library/textwrap.po -source_file = /pot/library/textwrap.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--threading] -file_filter = .//LC_MESSAGES/library/threading.po -trans.pt_BR = library/threading.po -source_file = /pot/library/threading.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--time] -file_filter = .//LC_MESSAGES/library/time.po -trans.pt_BR = library/time.po -source_file = /pot/library/time.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--timeit] -file_filter = .//LC_MESSAGES/library/timeit.po -trans.pt_BR = library/timeit.po -source_file = /pot/library/timeit.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tk] -file_filter = .//LC_MESSAGES/library/tk.po -trans.pt_BR = library/tk.po -source_file = /pot/library/tk.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter] -file_filter = .//LC_MESSAGES/library/tkinter.po -trans.pt_BR = library/tkinter.po -source_file = /pot/library/tkinter.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_colorchooser] -file_filter = .//LC_MESSAGES/library/tkinter.colorchooser.po -trans.pt_BR = library/tkinter.colorchooser.po -source_file = /pot/library/tkinter.colorchooser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_dnd] -file_filter = .//LC_MESSAGES/library/tkinter.dnd.po -trans.pt_BR = library/tkinter.dnd.po -source_file = /pot/library/tkinter.dnd.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_font] -file_filter = .//LC_MESSAGES/library/tkinter.font.po -trans.pt_BR = library/tkinter.font.po -source_file = /pot/library/tkinter.font.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_messagebox] -file_filter = .//LC_MESSAGES/library/tkinter.messagebox.po -trans.pt_BR = library/tkinter.messagebox.po -source_file = /pot/library/tkinter.messagebox.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_scrolledtext] -file_filter = .//LC_MESSAGES/library/tkinter.scrolledtext.po -trans.pt_BR = library/tkinter.scrolledtext.po -source_file = /pot/library/tkinter.scrolledtext.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_tix] -file_filter = .//LC_MESSAGES/library/tkinter.tix.po -trans.pt_BR = library/tkinter.tix.po -source_file = /pot/library/tkinter.tix.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tkinter_ttk] -file_filter = .//LC_MESSAGES/library/tkinter.ttk.po -trans.pt_BR = library/tkinter.ttk.po -source_file = /pot/library/tkinter.ttk.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--token] -file_filter = .//LC_MESSAGES/library/token.po -trans.pt_BR = library/token.po -source_file = /pot/library/token.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tokenize] -file_filter = .//LC_MESSAGES/library/tokenize.po -trans.pt_BR = library/tokenize.po -source_file = /pot/library/tokenize.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tomllib] -file_filter = .//LC_MESSAGES/library/tomllib.po -trans.pt_BR = library/tomllib.po -source_file = /pot/library/tomllib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--trace] -file_filter = .//LC_MESSAGES/library/trace.po -trans.pt_BR = library/trace.po -source_file = /pot/library/trace.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--traceback] -file_filter = .//LC_MESSAGES/library/traceback.po -trans.pt_BR = library/traceback.po -source_file = /pot/library/traceback.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tracemalloc] -file_filter = .//LC_MESSAGES/library/tracemalloc.po -trans.pt_BR = library/tracemalloc.po -source_file = /pot/library/tracemalloc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--tty] -file_filter = .//LC_MESSAGES/library/tty.po -trans.pt_BR = library/tty.po -source_file = /pot/library/tty.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--turtle] -file_filter = .//LC_MESSAGES/library/turtle.po -trans.pt_BR = library/turtle.po -source_file = /pot/library/turtle.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--types] -file_filter = .//LC_MESSAGES/library/types.po -trans.pt_BR = library/types.po -source_file = /pot/library/types.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--typing] -file_filter = .//LC_MESSAGES/library/typing.po -trans.pt_BR = library/typing.po -source_file = /pot/library/typing.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--unicodedata] -file_filter = .//LC_MESSAGES/library/unicodedata.po -trans.pt_BR = library/unicodedata.po -source_file = /pot/library/unicodedata.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--unittest] -file_filter = .//LC_MESSAGES/library/unittest.po -trans.pt_BR = library/unittest.po -source_file = /pot/library/unittest.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--unittest_mock] -file_filter = .//LC_MESSAGES/library/unittest.mock.po -trans.pt_BR = library/unittest.mock.po -source_file = /pot/library/unittest.mock.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--unittest_mock-examples] -file_filter = .//LC_MESSAGES/library/unittest.mock-examples.po -trans.pt_BR = library/unittest.mock-examples.po -source_file = /pot/library/unittest.mock-examples.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--unix] -file_filter = .//LC_MESSAGES/library/unix.po -trans.pt_BR = library/unix.po -source_file = /pot/library/unix.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--urllib] -file_filter = .//LC_MESSAGES/library/urllib.po -trans.pt_BR = library/urllib.po -source_file = /pot/library/urllib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--urllib_error] -file_filter = .//LC_MESSAGES/library/urllib.error.po -trans.pt_BR = library/urllib.error.po -source_file = /pot/library/urllib.error.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--urllib_parse] -file_filter = .//LC_MESSAGES/library/urllib.parse.po -trans.pt_BR = library/urllib.parse.po -source_file = /pot/library/urllib.parse.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--urllib_request] -file_filter = .//LC_MESSAGES/library/urllib.request.po -trans.pt_BR = library/urllib.request.po -source_file = /pot/library/urllib.request.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--urllib_robotparser] -file_filter = .//LC_MESSAGES/library/urllib.robotparser.po -trans.pt_BR = library/urllib.robotparser.po -source_file = /pot/library/urllib.robotparser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--uu] -file_filter = .//LC_MESSAGES/library/uu.po -trans.pt_BR = library/uu.po -source_file = /pot/library/uu.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--uuid] -file_filter = .//LC_MESSAGES/library/uuid.po -trans.pt_BR = library/uuid.po -source_file = /pot/library/uuid.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--venv] -file_filter = .//LC_MESSAGES/library/venv.po -trans.pt_BR = library/venv.po -source_file = /pot/library/venv.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--warnings] -file_filter = .//LC_MESSAGES/library/warnings.po -trans.pt_BR = library/warnings.po -source_file = /pot/library/warnings.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--wave] -file_filter = .//LC_MESSAGES/library/wave.po -trans.pt_BR = library/wave.po -source_file = /pot/library/wave.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--weakref] -file_filter = .//LC_MESSAGES/library/weakref.po -trans.pt_BR = library/weakref.po -source_file = /pot/library/weakref.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--webbrowser] -file_filter = .//LC_MESSAGES/library/webbrowser.po -trans.pt_BR = library/webbrowser.po -source_file = /pot/library/webbrowser.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--windows] -file_filter = .//LC_MESSAGES/library/windows.po -trans.pt_BR = library/windows.po -source_file = /pot/library/windows.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--winreg] -file_filter = .//LC_MESSAGES/library/winreg.po -trans.pt_BR = library/winreg.po -source_file = /pot/library/winreg.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--winsound] -file_filter = .//LC_MESSAGES/library/winsound.po -trans.pt_BR = library/winsound.po -source_file = /pot/library/winsound.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--wsgiref] -file_filter = .//LC_MESSAGES/library/wsgiref.po -trans.pt_BR = library/wsgiref.po -source_file = /pot/library/wsgiref.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xdrlib] -file_filter = .//LC_MESSAGES/library/xdrlib.po -trans.pt_BR = library/xdrlib.po -source_file = /pot/library/xdrlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml] -file_filter = .//LC_MESSAGES/library/xml.po -trans.pt_BR = library/xml.po -source_file = /pot/library/xml.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_dom] -file_filter = .//LC_MESSAGES/library/xml.dom.po -trans.pt_BR = library/xml.dom.po -source_file = /pot/library/xml.dom.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_dom_minidom] -file_filter = .//LC_MESSAGES/library/xml.dom.minidom.po -trans.pt_BR = library/xml.dom.minidom.po -source_file = /pot/library/xml.dom.minidom.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_dom_pulldom] -file_filter = .//LC_MESSAGES/library/xml.dom.pulldom.po -trans.pt_BR = library/xml.dom.pulldom.po -source_file = /pot/library/xml.dom.pulldom.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_etree_elementtree] -file_filter = .//LC_MESSAGES/library/xml.etree.elementtree.po -trans.pt_BR = library/xml.etree.elementtree.po -source_file = /pot/library/xml.etree.elementtree.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_sax] -file_filter = .//LC_MESSAGES/library/xml.sax.po -trans.pt_BR = library/xml.sax.po -source_file = /pot/library/xml.sax.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_sax_handler] -file_filter = .//LC_MESSAGES/library/xml.sax.handler.po -trans.pt_BR = library/xml.sax.handler.po -source_file = /pot/library/xml.sax.handler.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_sax_reader] -file_filter = .//LC_MESSAGES/library/xml.sax.reader.po -trans.pt_BR = library/xml.sax.reader.po -source_file = /pot/library/xml.sax.reader.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xml_sax_utils] -file_filter = .//LC_MESSAGES/library/xml.sax.utils.po -trans.pt_BR = library/xml.sax.utils.po -source_file = /pot/library/xml.sax.utils.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xmlrpc] -file_filter = .//LC_MESSAGES/library/xmlrpc.po -trans.pt_BR = library/xmlrpc.po -source_file = /pot/library/xmlrpc.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xmlrpc_client] -file_filter = .//LC_MESSAGES/library/xmlrpc.client.po -trans.pt_BR = library/xmlrpc.client.po -source_file = /pot/library/xmlrpc.client.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--xmlrpc_server] -file_filter = .//LC_MESSAGES/library/xmlrpc.server.po -trans.pt_BR = library/xmlrpc.server.po -source_file = /pot/library/xmlrpc.server.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--zipapp] -file_filter = .//LC_MESSAGES/library/zipapp.po -trans.pt_BR = library/zipapp.po -source_file = /pot/library/zipapp.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--zipfile] -file_filter = .//LC_MESSAGES/library/zipfile.po -trans.pt_BR = library/zipfile.po -source_file = /pot/library/zipfile.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--zipimport] -file_filter = .//LC_MESSAGES/library/zipimport.po -trans.pt_BR = library/zipimport.po -source_file = /pot/library/zipimport.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--zlib] -file_filter = .//LC_MESSAGES/library/zlib.po -trans.pt_BR = library/zlib.po -source_file = /pot/library/zlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:library--zoneinfo] -file_filter = .//LC_MESSAGES/library/zoneinfo.po -trans.pt_BR = library/zoneinfo.po -source_file = /pot/library/zoneinfo.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:license] -file_filter = .//LC_MESSAGES/license.po -trans.pt_BR = license.po -source_file = /pot/license.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--compound_stmts] -file_filter = .//LC_MESSAGES/reference/compound_stmts.po -trans.pt_BR = reference/compound_stmts.po -source_file = /pot/reference/compound_stmts.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--datamodel] -file_filter = .//LC_MESSAGES/reference/datamodel.po -trans.pt_BR = reference/datamodel.po -source_file = /pot/reference/datamodel.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--executionmodel] -file_filter = .//LC_MESSAGES/reference/executionmodel.po -trans.pt_BR = reference/executionmodel.po -source_file = /pot/reference/executionmodel.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--expressions] -file_filter = .//LC_MESSAGES/reference/expressions.po -trans.pt_BR = reference/expressions.po -source_file = /pot/reference/expressions.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--grammar] -file_filter = .//LC_MESSAGES/reference/grammar.po -trans.pt_BR = reference/grammar.po -source_file = /pot/reference/grammar.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--import] -file_filter = .//LC_MESSAGES/reference/import.po -trans.pt_BR = reference/import.po -source_file = /pot/reference/import.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--index] -file_filter = .//LC_MESSAGES/reference/index.po -trans.pt_BR = reference/index.po -source_file = /pot/reference/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--introduction] -file_filter = .//LC_MESSAGES/reference/introduction.po -trans.pt_BR = reference/introduction.po -source_file = /pot/reference/introduction.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--lexical_analysis] -file_filter = .//LC_MESSAGES/reference/lexical_analysis.po -trans.pt_BR = reference/lexical_analysis.po -source_file = /pot/reference/lexical_analysis.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--simple_stmts] -file_filter = .//LC_MESSAGES/reference/simple_stmts.po -trans.pt_BR = reference/simple_stmts.po -source_file = /pot/reference/simple_stmts.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:reference--toplevel_components] -file_filter = .//LC_MESSAGES/reference/toplevel_components.po -trans.pt_BR = reference/toplevel_components.po -source_file = /pot/reference/toplevel_components.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:sphinx] -file_filter = .//LC_MESSAGES/sphinx.po -trans.pt_BR = sphinx.po -source_file = /pot/sphinx.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--appendix] -file_filter = .//LC_MESSAGES/tutorial/appendix.po -trans.pt_BR = tutorial/appendix.po -source_file = /pot/tutorial/appendix.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--appetite] -file_filter = .//LC_MESSAGES/tutorial/appetite.po -trans.pt_BR = tutorial/appetite.po -source_file = /pot/tutorial/appetite.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--classes] -file_filter = .//LC_MESSAGES/tutorial/classes.po -trans.pt_BR = tutorial/classes.po -source_file = /pot/tutorial/classes.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--controlflow] -file_filter = .//LC_MESSAGES/tutorial/controlflow.po -trans.pt_BR = tutorial/controlflow.po -source_file = /pot/tutorial/controlflow.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--datastructures] -file_filter = .//LC_MESSAGES/tutorial/datastructures.po -trans.pt_BR = tutorial/datastructures.po -source_file = /pot/tutorial/datastructures.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--errors] -file_filter = .//LC_MESSAGES/tutorial/errors.po -trans.pt_BR = tutorial/errors.po -source_file = /pot/tutorial/errors.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--floatingpoint] -file_filter = .//LC_MESSAGES/tutorial/floatingpoint.po -trans.pt_BR = tutorial/floatingpoint.po -source_file = /pot/tutorial/floatingpoint.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--index] -file_filter = .//LC_MESSAGES/tutorial/index.po -trans.pt_BR = tutorial/index.po -source_file = /pot/tutorial/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--inputoutput] -file_filter = .//LC_MESSAGES/tutorial/inputoutput.po -trans.pt_BR = tutorial/inputoutput.po -source_file = /pot/tutorial/inputoutput.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--interactive] -file_filter = .//LC_MESSAGES/tutorial/interactive.po -trans.pt_BR = tutorial/interactive.po -source_file = /pot/tutorial/interactive.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--interpreter] -file_filter = .//LC_MESSAGES/tutorial/interpreter.po -trans.pt_BR = tutorial/interpreter.po -source_file = /pot/tutorial/interpreter.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--introduction] -file_filter = .//LC_MESSAGES/tutorial/introduction.po -trans.pt_BR = tutorial/introduction.po -source_file = /pot/tutorial/introduction.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--modules] -file_filter = .//LC_MESSAGES/tutorial/modules.po -trans.pt_BR = tutorial/modules.po -source_file = /pot/tutorial/modules.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--stdlib] -file_filter = .//LC_MESSAGES/tutorial/stdlib.po -trans.pt_BR = tutorial/stdlib.po -source_file = /pot/tutorial/stdlib.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--stdlib2] -file_filter = .//LC_MESSAGES/tutorial/stdlib2.po -trans.pt_BR = tutorial/stdlib2.po -source_file = /pot/tutorial/stdlib2.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--venv] -file_filter = .//LC_MESSAGES/tutorial/venv.po -trans.pt_BR = tutorial/venv.po -source_file = /pot/tutorial/venv.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:tutorial--whatnow] -file_filter = .//LC_MESSAGES/tutorial/whatnow.po -trans.pt_BR = tutorial/whatnow.po -source_file = /pot/tutorial/whatnow.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--cmdline] -file_filter = .//LC_MESSAGES/using/cmdline.po -trans.pt_BR = using/cmdline.po -source_file = /pot/using/cmdline.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--configure] -file_filter = .//LC_MESSAGES/using/configure.po -trans.pt_BR = using/configure.po -source_file = /pot/using/configure.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--editors] -file_filter = .//LC_MESSAGES/using/editors.po -trans.pt_BR = using/editors.po -source_file = /pot/using/editors.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--index] -file_filter = .//LC_MESSAGES/using/index.po -trans.pt_BR = using/index.po -source_file = /pot/using/index.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--mac] -file_filter = .//LC_MESSAGES/using/mac.po -trans.pt_BR = using/mac.po -source_file = /pot/using/mac.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--unix] -file_filter = .//LC_MESSAGES/using/unix.po -trans.pt_BR = using/unix.po -source_file = /pot/using/unix.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:using--windows] -file_filter = .//LC_MESSAGES/using/windows.po -trans.pt_BR = using/windows.po -source_file = /pot/using/windows.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_0] -file_filter = .//LC_MESSAGES/whatsnew/2.0.po -trans.pt_BR = whatsnew/2.0.po -source_file = /pot/whatsnew/2.0.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_1] -file_filter = .//LC_MESSAGES/whatsnew/2.1.po -trans.pt_BR = whatsnew/2.1.po -source_file = /pot/whatsnew/2.1.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_2] -file_filter = .//LC_MESSAGES/whatsnew/2.2.po -trans.pt_BR = whatsnew/2.2.po -source_file = /pot/whatsnew/2.2.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_3] -file_filter = .//LC_MESSAGES/whatsnew/2.3.po -trans.pt_BR = whatsnew/2.3.po -source_file = /pot/whatsnew/2.3.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_4] -file_filter = .//LC_MESSAGES/whatsnew/2.4.po -trans.pt_BR = whatsnew/2.4.po -source_file = /pot/whatsnew/2.4.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_5] -file_filter = .//LC_MESSAGES/whatsnew/2.5.po -trans.pt_BR = whatsnew/2.5.po -source_file = /pot/whatsnew/2.5.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_6] -file_filter = .//LC_MESSAGES/whatsnew/2.6.po -trans.pt_BR = whatsnew/2.6.po -source_file = /pot/whatsnew/2.6.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--2_7] -file_filter = .//LC_MESSAGES/whatsnew/2.7.po -trans.pt_BR = whatsnew/2.7.po -source_file = /pot/whatsnew/2.7.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_0] -file_filter = .//LC_MESSAGES/whatsnew/3.0.po -trans.pt_BR = whatsnew/3.0.po -source_file = /pot/whatsnew/3.0.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_1] -file_filter = .//LC_MESSAGES/whatsnew/3.1.po -trans.pt_BR = whatsnew/3.1.po -source_file = /pot/whatsnew/3.1.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_10] -file_filter = .//LC_MESSAGES/whatsnew/3.10.po -trans.pt_BR = whatsnew/3.10.po -source_file = /pot/whatsnew/3.10.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_11] -file_filter = .//LC_MESSAGES/whatsnew/3.11.po -trans.pt_BR = whatsnew/3.11.po -source_file = /pot/whatsnew/3.11.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_12] -file_filter = .//LC_MESSAGES/whatsnew/3.12.po -trans.pt_BR = whatsnew/3.12.po -source_file = /pot/whatsnew/3.12.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_2] -file_filter = .//LC_MESSAGES/whatsnew/3.2.po -trans.pt_BR = whatsnew/3.2.po -source_file = /pot/whatsnew/3.2.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_3] -file_filter = .//LC_MESSAGES/whatsnew/3.3.po -trans.pt_BR = whatsnew/3.3.po -source_file = /pot/whatsnew/3.3.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_4] -file_filter = .//LC_MESSAGES/whatsnew/3.4.po -trans.pt_BR = whatsnew/3.4.po -source_file = /pot/whatsnew/3.4.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_5] -file_filter = .//LC_MESSAGES/whatsnew/3.5.po -trans.pt_BR = whatsnew/3.5.po -source_file = /pot/whatsnew/3.5.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_6] -file_filter = .//LC_MESSAGES/whatsnew/3.6.po -trans.pt_BR = whatsnew/3.6.po -source_file = /pot/whatsnew/3.6.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_7] -file_filter = .//LC_MESSAGES/whatsnew/3.7.po -trans.pt_BR = whatsnew/3.7.po -source_file = /pot/whatsnew/3.7.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_8] -file_filter = .//LC_MESSAGES/whatsnew/3.8.po -trans.pt_BR = whatsnew/3.8.po -source_file = /pot/whatsnew/3.8.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--3_9] -file_filter = .//LC_MESSAGES/whatsnew/3.9.po -trans.pt_BR = whatsnew/3.9.po -source_file = /pot/whatsnew/3.9.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--changelog] -file_filter = .//LC_MESSAGES/whatsnew/changelog.po -trans.pt_BR = whatsnew/changelog.po -source_file = /pot/whatsnew/changelog.pot -type = PO -minimum_perc = 0 - -[o:python-doc:p:python-newest:r:whatsnew--index] -file_filter = .//LC_MESSAGES/whatsnew/index.po -trans.pt_BR = whatsnew/index.po -source_file = /pot/whatsnew/index.pot -type = PO -minimum_perc = 0 +[o:python-doc:p:python-312:r:about] +file_filter = about.po +type = PO +minimum_perc = 0 +resource_name = about +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:bugs] +file_filter = bugs.po +type = PO +minimum_perc = 0 +resource_name = bugs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--abstract] +file_filter = c-api/abstract.po +type = PO +minimum_perc = 0 +resource_name = c-api--abstract +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--allocation] +file_filter = c-api/allocation.po +type = PO +minimum_perc = 0 +resource_name = c-api--allocation +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--apiabiversion] +file_filter = c-api/apiabiversion.po +type = PO +minimum_perc = 0 +resource_name = c-api--apiabiversion +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--arg] +file_filter = c-api/arg.po +type = PO +minimum_perc = 0 +resource_name = c-api--arg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--bool] +file_filter = c-api/bool.po +type = PO +minimum_perc = 0 +resource_name = c-api--bool +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--buffer] +file_filter = c-api/buffer.po +type = PO +minimum_perc = 0 +resource_name = c-api--buffer +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--bytearray] +file_filter = c-api/bytearray.po +type = PO +minimum_perc = 0 +resource_name = c-api--bytearray +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--bytes] +file_filter = c-api/bytes.po +type = PO +minimum_perc = 0 +resource_name = c-api--bytes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--call] +file_filter = c-api/call.po +type = PO +minimum_perc = 0 +resource_name = c-api--call +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--capsule] +file_filter = c-api/capsule.po +type = PO +minimum_perc = 0 +resource_name = c-api--capsule +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--cell] +file_filter = c-api/cell.po +type = PO +minimum_perc = 0 +resource_name = c-api--cell +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--code] +file_filter = c-api/code.po +type = PO +minimum_perc = 0 +resource_name = c-api--code +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--codec] +file_filter = c-api/codec.po +type = PO +minimum_perc = 0 +resource_name = c-api--codec +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--complex] +file_filter = c-api/complex.po +type = PO +minimum_perc = 0 +resource_name = c-api--complex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--concrete] +file_filter = c-api/concrete.po +type = PO +minimum_perc = 0 +resource_name = c-api--concrete +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--contextvars] +file_filter = c-api/contextvars.po +type = PO +minimum_perc = 0 +resource_name = c-api--contextvars +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--conversion] +file_filter = c-api/conversion.po +type = PO +minimum_perc = 0 +resource_name = c-api--conversion +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--coro] +file_filter = c-api/coro.po +type = PO +minimum_perc = 0 +resource_name = c-api--coro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--datetime] +file_filter = c-api/datetime.po +type = PO +minimum_perc = 0 +resource_name = c-api--datetime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--descriptor] +file_filter = c-api/descriptor.po +type = PO +minimum_perc = 0 +resource_name = c-api--descriptor +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--dict] +file_filter = c-api/dict.po +type = PO +minimum_perc = 0 +resource_name = c-api--dict +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--exceptions] +file_filter = c-api/exceptions.po +type = PO +minimum_perc = 0 +resource_name = c-api--exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--file] +file_filter = c-api/file.po +type = PO +minimum_perc = 0 +resource_name = c-api--file +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--float] +file_filter = c-api/float.po +type = PO +minimum_perc = 0 +resource_name = c-api--float +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--frame] +file_filter = c-api/frame.po +type = PO +minimum_perc = 0 +resource_name = c-api--frame +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--function] +file_filter = c-api/function.po +type = PO +minimum_perc = 0 +resource_name = c-api--function +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--gcsupport] +file_filter = c-api/gcsupport.po +type = PO +minimum_perc = 0 +resource_name = c-api--gcsupport +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--gen] +file_filter = c-api/gen.po +type = PO +minimum_perc = 0 +resource_name = c-api--gen +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--hash] +file_filter = c-api/hash.po +type = PO +minimum_perc = 0 +resource_name = c-api--hash +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--import] +file_filter = c-api/import.po +type = PO +minimum_perc = 0 +resource_name = c-api--import +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--index] +file_filter = c-api/index.po +type = PO +minimum_perc = 0 +resource_name = c-api--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--init] +file_filter = c-api/init.po +type = PO +minimum_perc = 0 +resource_name = c-api--init +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--init_config] +file_filter = c-api/init_config.po +type = PO +minimum_perc = 0 +resource_name = c-api--init_config +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--intro] +file_filter = c-api/intro.po +type = PO +minimum_perc = 0 +resource_name = c-api--intro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--iter] +file_filter = c-api/iter.po +type = PO +minimum_perc = 0 +resource_name = c-api--iter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--iterator] +file_filter = c-api/iterator.po +type = PO +minimum_perc = 0 +resource_name = c-api--iterator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--list] +file_filter = c-api/list.po +type = PO +minimum_perc = 0 +resource_name = c-api--list +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--long] +file_filter = c-api/long.po +type = PO +minimum_perc = 0 +resource_name = c-api--long +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--mapping] +file_filter = c-api/mapping.po +type = PO +minimum_perc = 0 +resource_name = c-api--mapping +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--marshal] +file_filter = c-api/marshal.po +type = PO +minimum_perc = 0 +resource_name = c-api--marshal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--memory] +file_filter = c-api/memory.po +type = PO +minimum_perc = 0 +resource_name = c-api--memory +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--memoryview] +file_filter = c-api/memoryview.po +type = PO +minimum_perc = 0 +resource_name = c-api--memoryview +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--method] +file_filter = c-api/method.po +type = PO +minimum_perc = 0 +resource_name = c-api--method +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--module] +file_filter = c-api/module.po +type = PO +minimum_perc = 0 +resource_name = c-api--module +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--none] +file_filter = c-api/none.po +type = PO +minimum_perc = 0 +resource_name = c-api--none +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--number] +file_filter = c-api/number.po +type = PO +minimum_perc = 0 +resource_name = c-api--number +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--objbuffer] +file_filter = c-api/objbuffer.po +type = PO +minimum_perc = 0 +resource_name = c-api--objbuffer +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--object] +file_filter = c-api/object.po +type = PO +minimum_perc = 0 +resource_name = c-api--object +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--objimpl] +file_filter = c-api/objimpl.po +type = PO +minimum_perc = 0 +resource_name = c-api--objimpl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--perfmaps] +file_filter = c-api/perfmaps.po +type = PO +minimum_perc = 0 +resource_name = c-api--perfmaps +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--refcounting] +file_filter = c-api/refcounting.po +type = PO +minimum_perc = 0 +resource_name = c-api--refcounting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--reflection] +file_filter = c-api/reflection.po +type = PO +minimum_perc = 0 +resource_name = c-api--reflection +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--sequence] +file_filter = c-api/sequence.po +type = PO +minimum_perc = 0 +resource_name = c-api--sequence +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--set] +file_filter = c-api/set.po +type = PO +minimum_perc = 0 +resource_name = c-api--set +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--slice] +file_filter = c-api/slice.po +type = PO +minimum_perc = 0 +resource_name = c-api--slice +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--stable] +file_filter = c-api/stable.po +type = PO +minimum_perc = 0 +resource_name = c-api--stable +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--structures] +file_filter = c-api/structures.po +type = PO +minimum_perc = 0 +resource_name = c-api--structures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--sys] +file_filter = c-api/sys.po +type = PO +minimum_perc = 0 +resource_name = c-api--sys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--tuple] +file_filter = c-api/tuple.po +type = PO +minimum_perc = 0 +resource_name = c-api--tuple +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--type] +file_filter = c-api/type.po +type = PO +minimum_perc = 0 +resource_name = c-api--type +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--typehints] +file_filter = c-api/typehints.po +type = PO +minimum_perc = 0 +resource_name = c-api--typehints +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--typeobj] +file_filter = c-api/typeobj.po +type = PO +minimum_perc = 0 +resource_name = c-api--typeobj +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--unicode] +file_filter = c-api/unicode.po +type = PO +minimum_perc = 0 +resource_name = c-api--unicode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--utilities] +file_filter = c-api/utilities.po +type = PO +minimum_perc = 0 +resource_name = c-api--utilities +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--veryhigh] +file_filter = c-api/veryhigh.po +type = PO +minimum_perc = 0 +resource_name = c-api--veryhigh +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:c-api--weakref] +file_filter = c-api/weakref.po +type = PO +minimum_perc = 0 +resource_name = c-api--weakref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:contents] +file_filter = contents.po +type = PO +minimum_perc = 0 +resource_name = contents +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:copyright] +file_filter = copyright.po +type = PO +minimum_perc = 0 +resource_name = copyright +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--c-api-pending-removal-in-3_14] +file_filter = deprecations/c-api-pending-removal-in-3.14.po +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_14 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--c-api-pending-removal-in-3_15] +file_filter = deprecations/c-api-pending-removal-in-3.15.po +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_15 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--c-api-pending-removal-in-future] +file_filter = deprecations/c-api-pending-removal-in-future.po +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-future +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--index] +file_filter = deprecations/index.po +type = PO +minimum_perc = 0 +resource_name = deprecations--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--pending-removal-in-3_13] +file_filter = deprecations/pending-removal-in-3.13.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_13 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--pending-removal-in-3_14] +file_filter = deprecations/pending-removal-in-3.14.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_14 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--pending-removal-in-3_15] +file_filter = deprecations/pending-removal-in-3.15.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_15 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--pending-removal-in-3_16] +file_filter = deprecations/pending-removal-in-3.16.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_16 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:deprecations--pending-removal-in-future] +file_filter = deprecations/pending-removal-in-future.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-future +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:distributing--index] +file_filter = distributing/index.po +type = PO +minimum_perc = 0 +resource_name = distributing--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--building] +file_filter = extending/building.po +type = PO +minimum_perc = 0 +resource_name = extending--building +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--embedding] +file_filter = extending/embedding.po +type = PO +minimum_perc = 0 +resource_name = extending--embedding +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--extending] +file_filter = extending/extending.po +type = PO +minimum_perc = 0 +resource_name = extending--extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--index] +file_filter = extending/index.po +type = PO +minimum_perc = 0 +resource_name = extending--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--newtypes] +file_filter = extending/newtypes.po +type = PO +minimum_perc = 0 +resource_name = extending--newtypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--newtypes_tutorial] +file_filter = extending/newtypes_tutorial.po +type = PO +minimum_perc = 0 +resource_name = extending--newtypes_tutorial +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:extending--windows] +file_filter = extending/windows.po +type = PO +minimum_perc = 0 +resource_name = extending--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--design] +file_filter = faq/design.po +type = PO +minimum_perc = 0 +resource_name = faq--design +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--extending] +file_filter = faq/extending.po +type = PO +minimum_perc = 0 +resource_name = faq--extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--general] +file_filter = faq/general.po +type = PO +minimum_perc = 0 +resource_name = faq--general +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--gui] +file_filter = faq/gui.po +type = PO +minimum_perc = 0 +resource_name = faq--gui +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--index] +file_filter = faq/index.po +type = PO +minimum_perc = 0 +resource_name = faq--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--installed] +file_filter = faq/installed.po +type = PO +minimum_perc = 0 +resource_name = faq--installed +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--library] +file_filter = faq/library.po +type = PO +minimum_perc = 0 +resource_name = faq--library +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--programming] +file_filter = faq/programming.po +type = PO +minimum_perc = 0 +resource_name = faq--programming +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:faq--windows] +file_filter = faq/windows.po +type = PO +minimum_perc = 0 +resource_name = faq--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:glossary_] +file_filter = glossary.po +type = PO +minimum_perc = 0 +resource_name = glossary_ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--annotations] +file_filter = howto/annotations.po +type = PO +minimum_perc = 0 +resource_name = howto--annotations +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--argparse] +file_filter = howto/argparse.po +type = PO +minimum_perc = 0 +resource_name = howto--argparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--argparse-optparse] +file_filter = howto/argparse-optparse.po +type = PO +minimum_perc = 0 +resource_name = howto--argparse-optparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--clinic] +file_filter = howto/clinic.po +type = PO +minimum_perc = 0 +resource_name = howto--clinic +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--cporting] +file_filter = howto/cporting.po +type = PO +minimum_perc = 0 +resource_name = howto--cporting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--curses] +file_filter = howto/curses.po +type = PO +minimum_perc = 0 +resource_name = howto--curses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--descriptor] +file_filter = howto/descriptor.po +type = PO +minimum_perc = 0 +resource_name = howto--descriptor +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--enum] +file_filter = howto/enum.po +type = PO +minimum_perc = 0 +resource_name = howto--enum +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--functional] +file_filter = howto/functional.po +type = PO +minimum_perc = 0 +resource_name = howto--functional +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--gdb_helpers] +file_filter = howto/gdb_helpers.po +type = PO +minimum_perc = 0 +resource_name = howto--gdb_helpers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--index] +file_filter = howto/index.po +type = PO +minimum_perc = 0 +resource_name = howto--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--instrumentation] +file_filter = howto/instrumentation.po +type = PO +minimum_perc = 0 +resource_name = howto--instrumentation +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--ipaddress] +file_filter = howto/ipaddress.po +type = PO +minimum_perc = 0 +resource_name = howto--ipaddress +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--isolating-extensions] +file_filter = howto/isolating-extensions.po +type = PO +minimum_perc = 0 +resource_name = howto--isolating-extensions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--logging] +file_filter = howto/logging.po +type = PO +minimum_perc = 0 +resource_name = howto--logging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--logging-cookbook] +file_filter = howto/logging-cookbook.po +type = PO +minimum_perc = 0 +resource_name = howto--logging-cookbook +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--mro] +file_filter = howto/mro.po +type = PO +minimum_perc = 0 +resource_name = howto--mro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--perf_profiling] +file_filter = howto/perf_profiling.po +type = PO +minimum_perc = 0 +resource_name = howto--perf_profiling +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--pyporting] +file_filter = howto/pyporting.po +type = PO +minimum_perc = 0 +resource_name = howto--pyporting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--regex] +file_filter = howto/regex.po +type = PO +minimum_perc = 0 +resource_name = howto--regex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--sockets] +file_filter = howto/sockets.po +type = PO +minimum_perc = 0 +resource_name = howto--sockets +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--sorting] +file_filter = howto/sorting.po +type = PO +minimum_perc = 0 +resource_name = howto--sorting +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--unicode] +file_filter = howto/unicode.po +type = PO +minimum_perc = 0 +resource_name = howto--unicode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:howto--urllib2] +file_filter = howto/urllib2.po +type = PO +minimum_perc = 0 +resource_name = howto--urllib2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:installing--index] +file_filter = installing/index.po +type = PO +minimum_perc = 0 +resource_name = installing--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--2to3] +file_filter = library/2to3.po +type = PO +minimum_perc = 0 +resource_name = library--2to3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--abc] +file_filter = library/abc.po +type = PO +minimum_perc = 0 +resource_name = library--abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--aifc] +file_filter = library/aifc.po +type = PO +minimum_perc = 0 +resource_name = library--aifc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--allos] +file_filter = library/allos.po +type = PO +minimum_perc = 0 +resource_name = library--allos +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--archiving] +file_filter = library/archiving.po +type = PO +minimum_perc = 0 +resource_name = library--archiving +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--argparse] +file_filter = library/argparse.po +type = PO +minimum_perc = 0 +resource_name = library--argparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--array] +file_filter = library/array.po +type = PO +minimum_perc = 0 +resource_name = library--array +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ast] +file_filter = library/ast.po +type = PO +minimum_perc = 0 +resource_name = library--ast +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asynchat] +file_filter = library/asynchat.po +type = PO +minimum_perc = 0 +resource_name = library--asynchat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio] +file_filter = library/asyncio.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-api-index] +file_filter = library/asyncio-api-index.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-api-index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-dev] +file_filter = library/asyncio-dev.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-dev +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-eventloop] +file_filter = library/asyncio-eventloop.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-eventloop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-exceptions] +file_filter = library/asyncio-exceptions.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-extending] +file_filter = library/asyncio-extending.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-extending +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-future] +file_filter = library/asyncio-future.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-future +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-llapi-index] +file_filter = library/asyncio-llapi-index.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-llapi-index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-platforms] +file_filter = library/asyncio-platforms.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-platforms +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-policy] +file_filter = library/asyncio-policy.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-policy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-protocol] +file_filter = library/asyncio-protocol.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-protocol +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-queue] +file_filter = library/asyncio-queue.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-queue +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-runner] +file_filter = library/asyncio-runner.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-runner +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-stream] +file_filter = library/asyncio-stream.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-stream +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-subprocess] +file_filter = library/asyncio-subprocess.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-subprocess +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-sync] +file_filter = library/asyncio-sync.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-sync +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncio-task] +file_filter = library/asyncio-task.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-task +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--asyncore] +file_filter = library/asyncore.po +type = PO +minimum_perc = 0 +resource_name = library--asyncore +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--atexit] +file_filter = library/atexit.po +type = PO +minimum_perc = 0 +resource_name = library--atexit +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--audioop] +file_filter = library/audioop.po +type = PO +minimum_perc = 0 +resource_name = library--audioop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--audit_events] +file_filter = library/audit_events.po +type = PO +minimum_perc = 0 +resource_name = library--audit_events +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--base64] +file_filter = library/base64.po +type = PO +minimum_perc = 0 +resource_name = library--base64 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--bdb] +file_filter = library/bdb.po +type = PO +minimum_perc = 0 +resource_name = library--bdb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--binary] +file_filter = library/binary.po +type = PO +minimum_perc = 0 +resource_name = library--binary +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--binascii] +file_filter = library/binascii.po +type = PO +minimum_perc = 0 +resource_name = library--binascii +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--bisect] +file_filter = library/bisect.po +type = PO +minimum_perc = 0 +resource_name = library--bisect +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--builtins] +file_filter = library/builtins.po +type = PO +minimum_perc = 0 +resource_name = library--builtins +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--bz2] +file_filter = library/bz2.po +type = PO +minimum_perc = 0 +resource_name = library--bz2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--calendar] +file_filter = library/calendar.po +type = PO +minimum_perc = 0 +resource_name = library--calendar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--cgi] +file_filter = library/cgi.po +type = PO +minimum_perc = 0 +resource_name = library--cgi +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--cgitb] +file_filter = library/cgitb.po +type = PO +minimum_perc = 0 +resource_name = library--cgitb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--chunk] +file_filter = library/chunk.po +type = PO +minimum_perc = 0 +resource_name = library--chunk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--cmath] +file_filter = library/cmath.po +type = PO +minimum_perc = 0 +resource_name = library--cmath +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--cmd] +file_filter = library/cmd.po +type = PO +minimum_perc = 0 +resource_name = library--cmd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--cmdline] +file_filter = library/cmdline.po +type = PO +minimum_perc = 0 +resource_name = library--cmdline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--code] +file_filter = library/code.po +type = PO +minimum_perc = 0 +resource_name = library--code +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--codecs] +file_filter = library/codecs.po +type = PO +minimum_perc = 0 +resource_name = library--codecs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--codeop] +file_filter = library/codeop.po +type = PO +minimum_perc = 0 +resource_name = library--codeop +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--collections] +file_filter = library/collections.po +type = PO +minimum_perc = 0 +resource_name = library--collections +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--collections_abc] +file_filter = library/collections.abc.po +type = PO +minimum_perc = 0 +resource_name = library--collections_abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--colorsys] +file_filter = library/colorsys.po +type = PO +minimum_perc = 0 +resource_name = library--colorsys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--compileall] +file_filter = library/compileall.po +type = PO +minimum_perc = 0 +resource_name = library--compileall +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--concurrency] +file_filter = library/concurrency.po +type = PO +minimum_perc = 0 +resource_name = library--concurrency +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--concurrent] +file_filter = library/concurrent.po +type = PO +minimum_perc = 0 +resource_name = library--concurrent +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--concurrent_futures] +file_filter = library/concurrent.futures.po +type = PO +minimum_perc = 0 +resource_name = library--concurrent_futures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--configparser] +file_filter = library/configparser.po +type = PO +minimum_perc = 0 +resource_name = library--configparser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--constants] +file_filter = library/constants.po +type = PO +minimum_perc = 0 +resource_name = library--constants +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--contextlib] +file_filter = library/contextlib.po +type = PO +minimum_perc = 0 +resource_name = library--contextlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--contextvars] +file_filter = library/contextvars.po +type = PO +minimum_perc = 0 +resource_name = library--contextvars +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--copy] +file_filter = library/copy.po +type = PO +minimum_perc = 0 +resource_name = library--copy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--copyreg] +file_filter = library/copyreg.po +type = PO +minimum_perc = 0 +resource_name = library--copyreg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--crypt] +file_filter = library/crypt.po +type = PO +minimum_perc = 0 +resource_name = library--crypt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--crypto] +file_filter = library/crypto.po +type = PO +minimum_perc = 0 +resource_name = library--crypto +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--csv] +file_filter = library/csv.po +type = PO +minimum_perc = 0 +resource_name = library--csv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ctypes] +file_filter = library/ctypes.po +type = PO +minimum_perc = 0 +resource_name = library--ctypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--curses] +file_filter = library/curses.po +type = PO +minimum_perc = 0 +resource_name = library--curses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--curses_ascii] +file_filter = library/curses.ascii.po +type = PO +minimum_perc = 0 +resource_name = library--curses_ascii +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--curses_panel] +file_filter = library/curses.panel.po +type = PO +minimum_perc = 0 +resource_name = library--curses_panel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--custominterp] +file_filter = library/custominterp.po +type = PO +minimum_perc = 0 +resource_name = library--custominterp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--dataclasses] +file_filter = library/dataclasses.po +type = PO +minimum_perc = 0 +resource_name = library--dataclasses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--datatypes] +file_filter = library/datatypes.po +type = PO +minimum_perc = 0 +resource_name = library--datatypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--datetime] +file_filter = library/datetime.po +type = PO +minimum_perc = 0 +resource_name = library--datetime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--dbm] +file_filter = library/dbm.po +type = PO +minimum_perc = 0 +resource_name = library--dbm +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--debug] +file_filter = library/debug.po +type = PO +minimum_perc = 0 +resource_name = library--debug +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--decimal] +file_filter = library/decimal.po +type = PO +minimum_perc = 0 +resource_name = library--decimal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--development] +file_filter = library/development.po +type = PO +minimum_perc = 0 +resource_name = library--development +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--devmode] +file_filter = library/devmode.po +type = PO +minimum_perc = 0 +resource_name = library--devmode +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--dialog] +file_filter = library/dialog.po +type = PO +minimum_perc = 0 +resource_name = library--dialog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--difflib] +file_filter = library/difflib.po +type = PO +minimum_perc = 0 +resource_name = library--difflib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--dis] +file_filter = library/dis.po +type = PO +minimum_perc = 0 +resource_name = library--dis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--distribution] +file_filter = library/distribution.po +type = PO +minimum_perc = 0 +resource_name = library--distribution +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--distutils] +file_filter = library/distutils.po +type = PO +minimum_perc = 0 +resource_name = library--distutils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--doctest] +file_filter = library/doctest.po +type = PO +minimum_perc = 0 +resource_name = library--doctest +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email] +file_filter = library/email.po +type = PO +minimum_perc = 0 +resource_name = library--email +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_charset] +file_filter = library/email.charset.po +type = PO +minimum_perc = 0 +resource_name = library--email_charset +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_compat32-message] +file_filter = library/email.compat32-message.po +type = PO +minimum_perc = 0 +resource_name = library--email_compat32-message +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_contentmanager] +file_filter = library/email.contentmanager.po +type = PO +minimum_perc = 0 +resource_name = library--email_contentmanager +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_encoders] +file_filter = library/email.encoders.po +type = PO +minimum_perc = 0 +resource_name = library--email_encoders +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_errors] +file_filter = library/email.errors.po +type = PO +minimum_perc = 0 +resource_name = library--email_errors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_examples] +file_filter = library/email.examples.po +type = PO +minimum_perc = 0 +resource_name = library--email_examples +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_generator] +file_filter = library/email.generator.po +type = PO +minimum_perc = 0 +resource_name = library--email_generator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_header] +file_filter = library/email.header.po +type = PO +minimum_perc = 0 +resource_name = library--email_header +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_headerregistry] +file_filter = library/email.headerregistry.po +type = PO +minimum_perc = 0 +resource_name = library--email_headerregistry +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_iterators] +file_filter = library/email.iterators.po +type = PO +minimum_perc = 0 +resource_name = library--email_iterators +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_message] +file_filter = library/email.message.po +type = PO +minimum_perc = 0 +resource_name = library--email_message +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_mime] +file_filter = library/email.mime.po +type = PO +minimum_perc = 0 +resource_name = library--email_mime +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_parser] +file_filter = library/email.parser.po +type = PO +minimum_perc = 0 +resource_name = library--email_parser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_policy] +file_filter = library/email.policy.po +type = PO +minimum_perc = 0 +resource_name = library--email_policy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--email_utils] +file_filter = library/email.utils.po +type = PO +minimum_perc = 0 +resource_name = library--email_utils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ensurepip] +file_filter = library/ensurepip.po +type = PO +minimum_perc = 0 +resource_name = library--ensurepip +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--enum] +file_filter = library/enum.po +type = PO +minimum_perc = 0 +resource_name = library--enum +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--errno] +file_filter = library/errno.po +type = PO +minimum_perc = 0 +resource_name = library--errno +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--exceptions] +file_filter = library/exceptions.po +type = PO +minimum_perc = 0 +resource_name = library--exceptions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--faulthandler] +file_filter = library/faulthandler.po +type = PO +minimum_perc = 0 +resource_name = library--faulthandler +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--fcntl] +file_filter = library/fcntl.po +type = PO +minimum_perc = 0 +resource_name = library--fcntl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--filecmp] +file_filter = library/filecmp.po +type = PO +minimum_perc = 0 +resource_name = library--filecmp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--fileformats] +file_filter = library/fileformats.po +type = PO +minimum_perc = 0 +resource_name = library--fileformats +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--fileinput] +file_filter = library/fileinput.po +type = PO +minimum_perc = 0 +resource_name = library--fileinput +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--filesys] +file_filter = library/filesys.po +type = PO +minimum_perc = 0 +resource_name = library--filesys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--fnmatch] +file_filter = library/fnmatch.po +type = PO +minimum_perc = 0 +resource_name = library--fnmatch +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--fractions] +file_filter = library/fractions.po +type = PO +minimum_perc = 0 +resource_name = library--fractions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--frameworks] +file_filter = library/frameworks.po +type = PO +minimum_perc = 0 +resource_name = library--frameworks +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ftplib] +file_filter = library/ftplib.po +type = PO +minimum_perc = 0 +resource_name = library--ftplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--functional] +file_filter = library/functional.po +type = PO +minimum_perc = 0 +resource_name = library--functional +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--functions] +file_filter = library/functions.po +type = PO +minimum_perc = 0 +resource_name = library--functions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--functools] +file_filter = library/functools.po +type = PO +minimum_perc = 0 +resource_name = library--functools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--__future__] +file_filter = library/__future__.po +type = PO +minimum_perc = 0 +resource_name = library--__future__ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--gc] +file_filter = library/gc.po +type = PO +minimum_perc = 0 +resource_name = library--gc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--getopt] +file_filter = library/getopt.po +type = PO +minimum_perc = 0 +resource_name = library--getopt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--getpass] +file_filter = library/getpass.po +type = PO +minimum_perc = 0 +resource_name = library--getpass +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--gettext] +file_filter = library/gettext.po +type = PO +minimum_perc = 0 +resource_name = library--gettext +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--glob] +file_filter = library/glob.po +type = PO +minimum_perc = 0 +resource_name = library--glob +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--graphlib] +file_filter = library/graphlib.po +type = PO +minimum_perc = 0 +resource_name = library--graphlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--grp] +file_filter = library/grp.po +type = PO +minimum_perc = 0 +resource_name = library--grp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--gzip] +file_filter = library/gzip.po +type = PO +minimum_perc = 0 +resource_name = library--gzip +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--hashlib] +file_filter = library/hashlib.po +type = PO +minimum_perc = 0 +resource_name = library--hashlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--heapq] +file_filter = library/heapq.po +type = PO +minimum_perc = 0 +resource_name = library--heapq +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--hmac] +file_filter = library/hmac.po +type = PO +minimum_perc = 0 +resource_name = library--hmac +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--html] +file_filter = library/html.po +type = PO +minimum_perc = 0 +resource_name = library--html +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--html_entities] +file_filter = library/html.entities.po +type = PO +minimum_perc = 0 +resource_name = library--html_entities +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--html_parser] +file_filter = library/html.parser.po +type = PO +minimum_perc = 0 +resource_name = library--html_parser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--http] +file_filter = library/http.po +type = PO +minimum_perc = 0 +resource_name = library--http +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--http_client] +file_filter = library/http.client.po +type = PO +minimum_perc = 0 +resource_name = library--http_client +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--http_cookiejar] +file_filter = library/http.cookiejar.po +type = PO +minimum_perc = 0 +resource_name = library--http_cookiejar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--http_cookies] +file_filter = library/http.cookies.po +type = PO +minimum_perc = 0 +resource_name = library--http_cookies +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--http_server] +file_filter = library/http.server.po +type = PO +minimum_perc = 0 +resource_name = library--http_server +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--i18n] +file_filter = library/i18n.po +type = PO +minimum_perc = 0 +resource_name = library--i18n +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--idle] +file_filter = library/idle.po +type = PO +minimum_perc = 0 +resource_name = library--idle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--imaplib] +file_filter = library/imaplib.po +type = PO +minimum_perc = 0 +resource_name = library--imaplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--imghdr] +file_filter = library/imghdr.po +type = PO +minimum_perc = 0 +resource_name = library--imghdr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--imp] +file_filter = library/imp.po +type = PO +minimum_perc = 0 +resource_name = library--imp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--importlib] +file_filter = library/importlib.po +type = PO +minimum_perc = 0 +resource_name = library--importlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--importlib_metadata] +file_filter = library/importlib.metadata.po +type = PO +minimum_perc = 0 +resource_name = library--importlib_metadata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--importlib_resources] +file_filter = library/importlib.resources.po +type = PO +minimum_perc = 0 +resource_name = library--importlib_resources +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--importlib_resources_abc] +file_filter = library/importlib.resources.abc.po +type = PO +minimum_perc = 0 +resource_name = library--importlib_resources_abc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--index] +file_filter = library/index.po +type = PO +minimum_perc = 0 +resource_name = library--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--inspect] +file_filter = library/inspect.po +type = PO +minimum_perc = 0 +resource_name = library--inspect +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--internet] +file_filter = library/internet.po +type = PO +minimum_perc = 0 +resource_name = library--internet +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--intro] +file_filter = library/intro.po +type = PO +minimum_perc = 0 +resource_name = library--intro +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--io] +file_filter = library/io.po +type = PO +minimum_perc = 0 +resource_name = library--io +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ipaddress] +file_filter = library/ipaddress.po +type = PO +minimum_perc = 0 +resource_name = library--ipaddress +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ipc] +file_filter = library/ipc.po +type = PO +minimum_perc = 0 +resource_name = library--ipc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--itertools] +file_filter = library/itertools.po +type = PO +minimum_perc = 0 +resource_name = library--itertools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--json] +file_filter = library/json.po +type = PO +minimum_perc = 0 +resource_name = library--json +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--keyword] +file_filter = library/keyword.po +type = PO +minimum_perc = 0 +resource_name = library--keyword +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--language] +file_filter = library/language.po +type = PO +minimum_perc = 0 +resource_name = library--language +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--linecache] +file_filter = library/linecache.po +type = PO +minimum_perc = 0 +resource_name = library--linecache +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--locale] +file_filter = library/locale.po +type = PO +minimum_perc = 0 +resource_name = library--locale +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--logging] +file_filter = library/logging.po +type = PO +minimum_perc = 0 +resource_name = library--logging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--logging_config] +file_filter = library/logging.config.po +type = PO +minimum_perc = 0 +resource_name = library--logging_config +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--logging_handlers] +file_filter = library/logging.handlers.po +type = PO +minimum_perc = 0 +resource_name = library--logging_handlers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--lzma] +file_filter = library/lzma.po +type = PO +minimum_perc = 0 +resource_name = library--lzma +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--mailbox] +file_filter = library/mailbox.po +type = PO +minimum_perc = 0 +resource_name = library--mailbox +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--mailcap] +file_filter = library/mailcap.po +type = PO +minimum_perc = 0 +resource_name = library--mailcap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--__main__] +file_filter = library/__main__.po +type = PO +minimum_perc = 0 +resource_name = library--__main__ +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--markup] +file_filter = library/markup.po +type = PO +minimum_perc = 0 +resource_name = library--markup +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--marshal] +file_filter = library/marshal.po +type = PO +minimum_perc = 0 +resource_name = library--marshal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--math] +file_filter = library/math.po +type = PO +minimum_perc = 0 +resource_name = library--math +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--mimetypes] +file_filter = library/mimetypes.po +type = PO +minimum_perc = 0 +resource_name = library--mimetypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--mm] +file_filter = library/mm.po +type = PO +minimum_perc = 0 +resource_name = library--mm +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--mmap] +file_filter = library/mmap.po +type = PO +minimum_perc = 0 +resource_name = library--mmap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--modulefinder] +file_filter = library/modulefinder.po +type = PO +minimum_perc = 0 +resource_name = library--modulefinder +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--modules] +file_filter = library/modules.po +type = PO +minimum_perc = 0 +resource_name = library--modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--msilib] +file_filter = library/msilib.po +type = PO +minimum_perc = 0 +resource_name = library--msilib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--msvcrt] +file_filter = library/msvcrt.po +type = PO +minimum_perc = 0 +resource_name = library--msvcrt +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--multiprocessing] +file_filter = library/multiprocessing.po +type = PO +minimum_perc = 0 +resource_name = library--multiprocessing +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--multiprocessing_shared_memory] +file_filter = library/multiprocessing.shared_memory.po +type = PO +minimum_perc = 0 +resource_name = library--multiprocessing_shared_memory +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--netdata] +file_filter = library/netdata.po +type = PO +minimum_perc = 0 +resource_name = library--netdata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--netrc] +file_filter = library/netrc.po +type = PO +minimum_perc = 0 +resource_name = library--netrc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--nis] +file_filter = library/nis.po +type = PO +minimum_perc = 0 +resource_name = library--nis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--nntplib] +file_filter = library/nntplib.po +type = PO +minimum_perc = 0 +resource_name = library--nntplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--numbers] +file_filter = library/numbers.po +type = PO +minimum_perc = 0 +resource_name = library--numbers +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--numeric] +file_filter = library/numeric.po +type = PO +minimum_perc = 0 +resource_name = library--numeric +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--operator] +file_filter = library/operator.po +type = PO +minimum_perc = 0 +resource_name = library--operator +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--optparse] +file_filter = library/optparse.po +type = PO +minimum_perc = 0 +resource_name = library--optparse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--os] +file_filter = library/os.po +type = PO +minimum_perc = 0 +resource_name = library--os +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--os_path] +file_filter = library/os.path.po +type = PO +minimum_perc = 0 +resource_name = library--os_path +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ossaudiodev] +file_filter = library/ossaudiodev.po +type = PO +minimum_perc = 0 +resource_name = library--ossaudiodev +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pathlib] +file_filter = library/pathlib.po +type = PO +minimum_perc = 0 +resource_name = library--pathlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pdb] +file_filter = library/pdb.po +type = PO +minimum_perc = 0 +resource_name = library--pdb +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--persistence] +file_filter = library/persistence.po +type = PO +minimum_perc = 0 +resource_name = library--persistence +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pickle] +file_filter = library/pickle.po +type = PO +minimum_perc = 0 +resource_name = library--pickle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pickletools] +file_filter = library/pickletools.po +type = PO +minimum_perc = 0 +resource_name = library--pickletools +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pipes] +file_filter = library/pipes.po +type = PO +minimum_perc = 0 +resource_name = library--pipes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pkgutil] +file_filter = library/pkgutil.po +type = PO +minimum_perc = 0 +resource_name = library--pkgutil +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--platform] +file_filter = library/platform.po +type = PO +minimum_perc = 0 +resource_name = library--platform +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--plistlib] +file_filter = library/plistlib.po +type = PO +minimum_perc = 0 +resource_name = library--plistlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--poplib] +file_filter = library/poplib.po +type = PO +minimum_perc = 0 +resource_name = library--poplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--posix] +file_filter = library/posix.po +type = PO +minimum_perc = 0 +resource_name = library--posix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pprint] +file_filter = library/pprint.po +type = PO +minimum_perc = 0 +resource_name = library--pprint +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--profile] +file_filter = library/profile.po +type = PO +minimum_perc = 0 +resource_name = library--profile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pty] +file_filter = library/pty.po +type = PO +minimum_perc = 0 +resource_name = library--pty +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pwd] +file_filter = library/pwd.po +type = PO +minimum_perc = 0 +resource_name = library--pwd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pyclbr] +file_filter = library/pyclbr.po +type = PO +minimum_perc = 0 +resource_name = library--pyclbr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--py_compile] +file_filter = library/py_compile.po +type = PO +minimum_perc = 0 +resource_name = library--py_compile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pydoc] +file_filter = library/pydoc.po +type = PO +minimum_perc = 0 +resource_name = library--pydoc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--pyexpat] +file_filter = library/pyexpat.po +type = PO +minimum_perc = 0 +resource_name = library--pyexpat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--python] +file_filter = library/python.po +type = PO +minimum_perc = 0 +resource_name = library--python +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--queue] +file_filter = library/queue.po +type = PO +minimum_perc = 0 +resource_name = library--queue +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--quopri] +file_filter = library/quopri.po +type = PO +minimum_perc = 0 +resource_name = library--quopri +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--random] +file_filter = library/random.po +type = PO +minimum_perc = 0 +resource_name = library--random +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--re] +file_filter = library/re.po +type = PO +minimum_perc = 0 +resource_name = library--re +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--readline] +file_filter = library/readline.po +type = PO +minimum_perc = 0 +resource_name = library--readline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--removed] +file_filter = library/removed.po +type = PO +minimum_perc = 0 +resource_name = library--removed +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--reprlib] +file_filter = library/reprlib.po +type = PO +minimum_perc = 0 +resource_name = library--reprlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--resource] +file_filter = library/resource.po +type = PO +minimum_perc = 0 +resource_name = library--resource +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--rlcompleter] +file_filter = library/rlcompleter.po +type = PO +minimum_perc = 0 +resource_name = library--rlcompleter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--runpy] +file_filter = library/runpy.po +type = PO +minimum_perc = 0 +resource_name = library--runpy +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sched] +file_filter = library/sched.po +type = PO +minimum_perc = 0 +resource_name = library--sched +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--secrets] +file_filter = library/secrets.po +type = PO +minimum_perc = 0 +resource_name = library--secrets +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--security_warnings] +file_filter = library/security_warnings.po +type = PO +minimum_perc = 0 +resource_name = library--security_warnings +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--select] +file_filter = library/select.po +type = PO +minimum_perc = 0 +resource_name = library--select +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--selectors] +file_filter = library/selectors.po +type = PO +minimum_perc = 0 +resource_name = library--selectors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--shelve] +file_filter = library/shelve.po +type = PO +minimum_perc = 0 +resource_name = library--shelve +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--shlex] +file_filter = library/shlex.po +type = PO +minimum_perc = 0 +resource_name = library--shlex +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--shutil] +file_filter = library/shutil.po +type = PO +minimum_perc = 0 +resource_name = library--shutil +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--signal] +file_filter = library/signal.po +type = PO +minimum_perc = 0 +resource_name = library--signal +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--site] +file_filter = library/site.po +type = PO +minimum_perc = 0 +resource_name = library--site +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--smtpd] +file_filter = library/smtpd.po +type = PO +minimum_perc = 0 +resource_name = library--smtpd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--smtplib] +file_filter = library/smtplib.po +type = PO +minimum_perc = 0 +resource_name = library--smtplib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sndhdr] +file_filter = library/sndhdr.po +type = PO +minimum_perc = 0 +resource_name = library--sndhdr +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--socket] +file_filter = library/socket.po +type = PO +minimum_perc = 0 +resource_name = library--socket +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--socketserver] +file_filter = library/socketserver.po +type = PO +minimum_perc = 0 +resource_name = library--socketserver +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--spwd] +file_filter = library/spwd.po +type = PO +minimum_perc = 0 +resource_name = library--spwd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sqlite3] +file_filter = library/sqlite3.po +type = PO +minimum_perc = 0 +resource_name = library--sqlite3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--ssl] +file_filter = library/ssl.po +type = PO +minimum_perc = 0 +resource_name = library--ssl +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--stat] +file_filter = library/stat.po +type = PO +minimum_perc = 0 +resource_name = library--stat +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--statistics] +file_filter = library/statistics.po +type = PO +minimum_perc = 0 +resource_name = library--statistics +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--stdtypes] +file_filter = library/stdtypes.po +type = PO +minimum_perc = 0 +resource_name = library--stdtypes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--string] +file_filter = library/string.po +type = PO +minimum_perc = 0 +resource_name = library--string +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--stringprep] +file_filter = library/stringprep.po +type = PO +minimum_perc = 0 +resource_name = library--stringprep +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--struct] +file_filter = library/struct.po +type = PO +minimum_perc = 0 +resource_name = library--struct +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--subprocess] +file_filter = library/subprocess.po +type = PO +minimum_perc = 0 +resource_name = library--subprocess +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sunau] +file_filter = library/sunau.po +type = PO +minimum_perc = 0 +resource_name = library--sunau +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--superseded] +file_filter = library/superseded.po +type = PO +minimum_perc = 0 +resource_name = library--superseded +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--symtable] +file_filter = library/symtable.po +type = PO +minimum_perc = 0 +resource_name = library--symtable +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sys] +file_filter = library/sys.po +type = PO +minimum_perc = 0 +resource_name = library--sys +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sysconfig] +file_filter = library/sysconfig.po +type = PO +minimum_perc = 0 +resource_name = library--sysconfig +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--syslog] +file_filter = library/syslog.po +type = PO +minimum_perc = 0 +resource_name = library--syslog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sys_monitoring] +file_filter = library/sys.monitoring.po +type = PO +minimum_perc = 0 +resource_name = library--sys_monitoring +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--sys_path_init] +file_filter = library/sys_path_init.po +type = PO +minimum_perc = 0 +resource_name = library--sys_path_init +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tabnanny] +file_filter = library/tabnanny.po +type = PO +minimum_perc = 0 +resource_name = library--tabnanny +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tarfile] +file_filter = library/tarfile.po +type = PO +minimum_perc = 0 +resource_name = library--tarfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--telnetlib] +file_filter = library/telnetlib.po +type = PO +minimum_perc = 0 +resource_name = library--telnetlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tempfile] +file_filter = library/tempfile.po +type = PO +minimum_perc = 0 +resource_name = library--tempfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--termios] +file_filter = library/termios.po +type = PO +minimum_perc = 0 +resource_name = library--termios +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--test] +file_filter = library/test.po +type = PO +minimum_perc = 0 +resource_name = library--test +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--text] +file_filter = library/text.po +type = PO +minimum_perc = 0 +resource_name = library--text +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--textwrap] +file_filter = library/textwrap.po +type = PO +minimum_perc = 0 +resource_name = library--textwrap +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--_thread] +file_filter = library/_thread.po +type = PO +minimum_perc = 0 +resource_name = library--_thread +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--threading] +file_filter = library/threading.po +type = PO +minimum_perc = 0 +resource_name = library--threading +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--time] +file_filter = library/time.po +type = PO +minimum_perc = 0 +resource_name = library--time +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--timeit] +file_filter = library/timeit.po +type = PO +minimum_perc = 0 +resource_name = library--timeit +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tk] +file_filter = library/tk.po +type = PO +minimum_perc = 0 +resource_name = library--tk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter] +file_filter = library/tkinter.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_colorchooser] +file_filter = library/tkinter.colorchooser.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_colorchooser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_dnd] +file_filter = library/tkinter.dnd.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_dnd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_font] +file_filter = library/tkinter.font.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_font +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_messagebox] +file_filter = library/tkinter.messagebox.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_messagebox +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_scrolledtext] +file_filter = library/tkinter.scrolledtext.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_scrolledtext +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_tix] +file_filter = library/tkinter.tix.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_tix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tkinter_ttk] +file_filter = library/tkinter.ttk.po +type = PO +minimum_perc = 0 +resource_name = library--tkinter_ttk +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--token] +file_filter = library/token.po +type = PO +minimum_perc = 0 +resource_name = library--token +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tokenize] +file_filter = library/tokenize.po +type = PO +minimum_perc = 0 +resource_name = library--tokenize +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tomllib] +file_filter = library/tomllib.po +type = PO +minimum_perc = 0 +resource_name = library--tomllib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--trace] +file_filter = library/trace.po +type = PO +minimum_perc = 0 +resource_name = library--trace +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--traceback] +file_filter = library/traceback.po +type = PO +minimum_perc = 0 +resource_name = library--traceback +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tracemalloc] +file_filter = library/tracemalloc.po +type = PO +minimum_perc = 0 +resource_name = library--tracemalloc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--tty] +file_filter = library/tty.po +type = PO +minimum_perc = 0 +resource_name = library--tty +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--turtle] +file_filter = library/turtle.po +type = PO +minimum_perc = 0 +resource_name = library--turtle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--types] +file_filter = library/types.po +type = PO +minimum_perc = 0 +resource_name = library--types +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--typing] +file_filter = library/typing.po +type = PO +minimum_perc = 0 +resource_name = library--typing +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--unicodedata] +file_filter = library/unicodedata.po +type = PO +minimum_perc = 0 +resource_name = library--unicodedata +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--unittest] +file_filter = library/unittest.po +type = PO +minimum_perc = 0 +resource_name = library--unittest +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--unittest_mock] +file_filter = library/unittest.mock.po +type = PO +minimum_perc = 0 +resource_name = library--unittest_mock +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--unittest_mock-examples] +file_filter = library/unittest.mock-examples.po +type = PO +minimum_perc = 0 +resource_name = library--unittest_mock-examples +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--unix] +file_filter = library/unix.po +type = PO +minimum_perc = 0 +resource_name = library--unix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--urllib] +file_filter = library/urllib.po +type = PO +minimum_perc = 0 +resource_name = library--urllib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--urllib_error] +file_filter = library/urllib.error.po +type = PO +minimum_perc = 0 +resource_name = library--urllib_error +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--urllib_parse] +file_filter = library/urllib.parse.po +type = PO +minimum_perc = 0 +resource_name = library--urllib_parse +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--urllib_request] +file_filter = library/urllib.request.po +type = PO +minimum_perc = 0 +resource_name = library--urllib_request +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--urllib_robotparser] +file_filter = library/urllib.robotparser.po +type = PO +minimum_perc = 0 +resource_name = library--urllib_robotparser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--uu] +file_filter = library/uu.po +type = PO +minimum_perc = 0 +resource_name = library--uu +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--uuid] +file_filter = library/uuid.po +type = PO +minimum_perc = 0 +resource_name = library--uuid +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--venv] +file_filter = library/venv.po +type = PO +minimum_perc = 0 +resource_name = library--venv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--warnings] +file_filter = library/warnings.po +type = PO +minimum_perc = 0 +resource_name = library--warnings +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--wave] +file_filter = library/wave.po +type = PO +minimum_perc = 0 +resource_name = library--wave +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--weakref] +file_filter = library/weakref.po +type = PO +minimum_perc = 0 +resource_name = library--weakref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--webbrowser] +file_filter = library/webbrowser.po +type = PO +minimum_perc = 0 +resource_name = library--webbrowser +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--windows] +file_filter = library/windows.po +type = PO +minimum_perc = 0 +resource_name = library--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--winreg] +file_filter = library/winreg.po +type = PO +minimum_perc = 0 +resource_name = library--winreg +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--winsound] +file_filter = library/winsound.po +type = PO +minimum_perc = 0 +resource_name = library--winsound +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--wsgiref] +file_filter = library/wsgiref.po +type = PO +minimum_perc = 0 +resource_name = library--wsgiref +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xdrlib] +file_filter = library/xdrlib.po +type = PO +minimum_perc = 0 +resource_name = library--xdrlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml] +file_filter = library/xml.po +type = PO +minimum_perc = 0 +resource_name = library--xml +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_dom] +file_filter = library/xml.dom.po +type = PO +minimum_perc = 0 +resource_name = library--xml_dom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_dom_minidom] +file_filter = library/xml.dom.minidom.po +type = PO +minimum_perc = 0 +resource_name = library--xml_dom_minidom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_dom_pulldom] +file_filter = library/xml.dom.pulldom.po +type = PO +minimum_perc = 0 +resource_name = library--xml_dom_pulldom +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_etree_elementtree] +file_filter = library/xml.etree.elementtree.po +type = PO +minimum_perc = 0 +resource_name = library--xml_etree_elementtree +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xmlrpc] +file_filter = library/xmlrpc.po +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xmlrpc_client] +file_filter = library/xmlrpc.client.po +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc_client +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xmlrpc_server] +file_filter = library/xmlrpc.server.po +type = PO +minimum_perc = 0 +resource_name = library--xmlrpc_server +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_sax] +file_filter = library/xml.sax.po +type = PO +minimum_perc = 0 +resource_name = library--xml_sax +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_sax_handler] +file_filter = library/xml.sax.handler.po +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_handler +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_sax_reader] +file_filter = library/xml.sax.reader.po +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_reader +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--xml_sax_utils] +file_filter = library/xml.sax.utils.po +type = PO +minimum_perc = 0 +resource_name = library--xml_sax_utils +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--zipapp] +file_filter = library/zipapp.po +type = PO +minimum_perc = 0 +resource_name = library--zipapp +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--zipfile] +file_filter = library/zipfile.po +type = PO +minimum_perc = 0 +resource_name = library--zipfile +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--zipimport] +file_filter = library/zipimport.po +type = PO +minimum_perc = 0 +resource_name = library--zipimport +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--zlib] +file_filter = library/zlib.po +type = PO +minimum_perc = 0 +resource_name = library--zlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:library--zoneinfo] +file_filter = library/zoneinfo.po +type = PO +minimum_perc = 0 +resource_name = library--zoneinfo +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:license] +file_filter = license.po +type = PO +minimum_perc = 0 +resource_name = license +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--compound_stmts] +file_filter = reference/compound_stmts.po +type = PO +minimum_perc = 0 +resource_name = reference--compound_stmts +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--datamodel] +file_filter = reference/datamodel.po +type = PO +minimum_perc = 0 +resource_name = reference--datamodel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--executionmodel] +file_filter = reference/executionmodel.po +type = PO +minimum_perc = 0 +resource_name = reference--executionmodel +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--expressions] +file_filter = reference/expressions.po +type = PO +minimum_perc = 0 +resource_name = reference--expressions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--grammar] +file_filter = reference/grammar.po +type = PO +minimum_perc = 0 +resource_name = reference--grammar +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--import] +file_filter = reference/import.po +type = PO +minimum_perc = 0 +resource_name = reference--import +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--index] +file_filter = reference/index.po +type = PO +minimum_perc = 0 +resource_name = reference--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--introduction] +file_filter = reference/introduction.po +type = PO +minimum_perc = 0 +resource_name = reference--introduction +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--lexical_analysis] +file_filter = reference/lexical_analysis.po +type = PO +minimum_perc = 0 +resource_name = reference--lexical_analysis +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--simple_stmts] +file_filter = reference/simple_stmts.po +type = PO +minimum_perc = 0 +resource_name = reference--simple_stmts +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:reference--toplevel_components] +file_filter = reference/toplevel_components.po +type = PO +minimum_perc = 0 +resource_name = reference--toplevel_components +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:sphinx] +file_filter = sphinx.po +type = PO +minimum_perc = 0 +resource_name = sphinx +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--appendix] +file_filter = tutorial/appendix.po +type = PO +minimum_perc = 0 +resource_name = tutorial--appendix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--appetite] +file_filter = tutorial/appetite.po +type = PO +minimum_perc = 0 +resource_name = tutorial--appetite +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--classes] +file_filter = tutorial/classes.po +type = PO +minimum_perc = 0 +resource_name = tutorial--classes +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--controlflow] +file_filter = tutorial/controlflow.po +type = PO +minimum_perc = 0 +resource_name = tutorial--controlflow +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--datastructures] +file_filter = tutorial/datastructures.po +type = PO +minimum_perc = 0 +resource_name = tutorial--datastructures +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--errors] +file_filter = tutorial/errors.po +type = PO +minimum_perc = 0 +resource_name = tutorial--errors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--floatingpoint] +file_filter = tutorial/floatingpoint.po +type = PO +minimum_perc = 0 +resource_name = tutorial--floatingpoint +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--index] +file_filter = tutorial/index.po +type = PO +minimum_perc = 0 +resource_name = tutorial--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--inputoutput] +file_filter = tutorial/inputoutput.po +type = PO +minimum_perc = 0 +resource_name = tutorial--inputoutput +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--interactive] +file_filter = tutorial/interactive.po +type = PO +minimum_perc = 0 +resource_name = tutorial--interactive +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--interpreter] +file_filter = tutorial/interpreter.po +type = PO +minimum_perc = 0 +resource_name = tutorial--interpreter +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--introduction] +file_filter = tutorial/introduction.po +type = PO +minimum_perc = 0 +resource_name = tutorial--introduction +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--modules] +file_filter = tutorial/modules.po +type = PO +minimum_perc = 0 +resource_name = tutorial--modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--stdlib] +file_filter = tutorial/stdlib.po +type = PO +minimum_perc = 0 +resource_name = tutorial--stdlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--stdlib2] +file_filter = tutorial/stdlib2.po +type = PO +minimum_perc = 0 +resource_name = tutorial--stdlib2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--venv] +file_filter = tutorial/venv.po +type = PO +minimum_perc = 0 +resource_name = tutorial--venv +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:tutorial--whatnow] +file_filter = tutorial/whatnow.po +type = PO +minimum_perc = 0 +resource_name = tutorial--whatnow +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--cmdline] +file_filter = using/cmdline.po +type = PO +minimum_perc = 0 +resource_name = using--cmdline +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--configure] +file_filter = using/configure.po +type = PO +minimum_perc = 0 +resource_name = using--configure +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--editors] +file_filter = using/editors.po +type = PO +minimum_perc = 0 +resource_name = using--editors +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--index] +file_filter = using/index.po +type = PO +minimum_perc = 0 +resource_name = using--index +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--mac] +file_filter = using/mac.po +type = PO +minimum_perc = 0 +resource_name = using--mac +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--unix] +file_filter = using/unix.po +type = PO +minimum_perc = 0 +resource_name = using--unix +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:using--windows] +file_filter = using/windows.po +type = PO +minimum_perc = 0 +resource_name = using--windows +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_0] +file_filter = whatsnew/2.0.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_0 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_1] +file_filter = whatsnew/2.1.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_1 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_2] +file_filter = whatsnew/2.2.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_3] +file_filter = whatsnew/2.3.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_4] +file_filter = whatsnew/2.4.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_4 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_5] +file_filter = whatsnew/2.5.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_5 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_6] +file_filter = whatsnew/2.6.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_6 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--2_7] +file_filter = whatsnew/2.7.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--2_7 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_0] +file_filter = whatsnew/3.0.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_0 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_1] +file_filter = whatsnew/3.1.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_1 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_10] +file_filter = whatsnew/3.10.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_10 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_11] +file_filter = whatsnew/3.11.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_11 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_12] +file_filter = whatsnew/3.12.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_12 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_2] +file_filter = whatsnew/3.2.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_2 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_3] +file_filter = whatsnew/3.3.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_3 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_4] +file_filter = whatsnew/3.4.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_4 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_5] +file_filter = whatsnew/3.5.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_5 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_6] +file_filter = whatsnew/3.6.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_6 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_7] +file_filter = whatsnew/3.7.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_7 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_8] +file_filter = whatsnew/3.8.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_8 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--3_9] +file_filter = whatsnew/3.9.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_9 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--changelog] +file_filter = whatsnew/changelog.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--changelog +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-312:r:whatsnew--index] +file_filter = whatsnew/index.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--index +replace_edited_strings = false +keep_translations = false diff --git a/Makefile b/Makefile deleted file mode 100644 index e548b8974..000000000 --- a/Makefile +++ /dev/null @@ -1,260 +0,0 @@ -# -# Makefile for Brazilian Portuguese Python Documentation -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# based on: https://github.com/python/python-docs-fr/blob/3.8/Makefile -# - -################# -# Configuration - -# Read environment variables from file to keep this clean move version -# changes elsewhere -include .env - -# Force the use of Bash -SHELL=/bin/bash - -# Time of starting this run -NOW := $(shell date +'%Y%m%-d-%H%M%Z') - -# Force realpath, not relative one -override CPYTHON_DIR := $(shell realpath $(CPYTHON_DIR)) - -override LOGS_DIR := $(shell realpath $(LOGS_DIR)) - -override VENV_DIR := $(shell realpath $(VENV_DIR)) -# -################# - -.PHONY: build clean help htmlview lint merge pot pull push setup spell tx-config tx-install venv - -help: - @echo "Please use 'make ' where is one of:" - @echo " build Build an local version in html; deps: 'setup'" - @echo " push Commit and push translations; no deps" - @echo " pull Download translations from Transifex; deps: 'tx-config'" - @echo " tx-config Regenerate Transifex config; deps: 'pot' and 'tx-install'" - @echo " tx-install Install Transifex CLI client; deps: no deps" - @echo " pot Regenerate POT files from sources; deps: 'setup'" - @echo " htmlview View docs in a web browser; deps: build" - @echo " spell Check spelling, storing output in $(POSPELL_TMP_DIR)" - @echo " lint Do some linting in PO file's Sphinx syntax. deps: 'venv'" - @echo " merge Merge $(BRANCH) branch's .po files into older branches" - @echo " Defaults overwrite in: $(BUGFIXBRANCH)" - @echo " and NOT overwrite in: $(OLDERBRANCHES)" - @echo " clean Do some house cleaning" - @echo "" - - -# build: build the documentation using the translation files currently available -# at the moment. For most up-to-date docs, run "tx-config" and "pull" -# before this. If passing SPHINXERRORHANDLING='', warnings will not be -# treated as errors, which is good to skip simple Sphinx syntax mistakes. -build: setup - @mkdir -p "$(CPYTHON_DIR)/$(LOCALE_DIR)/$(LANGUAGE)/LC_MESSAGES/" - @cp --parents *.po **/*.po "$(CPYTHON_DIR)/$(LOCALE_DIR)/$(LANGUAGE)/LC_MESSAGES/" - @echo "Building Python $(BRANCH) Documentation in $(LANGUAGE) ..." - @mkdir -p "$(LOGS_DIR)/build" - @$(MAKE) -C $(CPYTHON_DIR)/Doc/ \ - PYTHON=$(PYTHON) \ - SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \ - SPHINXOPTS="--keep-going \ - -D gettext_compact=0 \ - -D language=$(LANGUAGE) \ - -D latex_engine=xelatex \ - -D latex_elements.inputenc= \ - -D latex_elements.fontenc=" \ - html \ - 2> >(tee -a $(LOGS_DIR)/build/err-$(NOW).txt >&2) - - -# push: Commit and push translation files and Transifex config file to repo. -# First it git-adds tracked file that doesn't exclusively match changes -# in POT-Creation-Date header field. Then it git-adds untracked PO files -# that might have been created in the update process, and the Transifex -# configuration. Finally, only commit and push only if any file was -# git-added (staged); otherwise, it does nothing. -# The MSG variable has a default commit message, but one can override it -# e.g. make push MSG='my message' -push: - @git diff -I'^"POT-Creation-Date: ' --numstat *.po **/*.po | cut -f3 | xargs -r git add - @git add $(shell git ls-files -o *.po **/*.po) .tx/config - @git diff-index --cached --quiet HEAD || \ - { git commit -m "Update translations from Transifex" && git push; } - - -# pull: Download translations files from Transifex, and apply line wrapping. -# For downloading new translation files, first run "tx-config" target -# to update the translation file mapping. -pull: tx-config - @"$(TX_CLI_DIR)/tx" pull -l $(LANGUAGE) -t -f --use-git-timestamps - @"$(VENV_DIR)/bin/powrap" --quiet *.po **/*.po - - -# tx-config: Generate a new Transifex configuration file by reading -# the pot files generated by 'pot' target. The file is -# created in $(LOCALE_DIR)/.tx/config, and then is tweaked -# to fit the language's needs and then placed in .tx/config -# at the project's root directory. -tx-config: TRANSIFEX_PROJECT := python-newest -tx-config: pot tx-install - @cd $(CPYTHON_DIR)/$(LOCALE_DIR); \ - rm -rf .tx; \ - "$(VENV_DIR)/bin/sphinx-intl" create-txconfig; \ - "$(VENV_DIR)/bin/sphinx-intl" update-txconfig-resources \ - --transifex-organization-name python-doc \ - --transifex-project-name=$(TRANSIFEX_PROJECT) \ - --locale-dir . \ - --pot-dir pot - @mkdir -p .tx - @sed $(CPYTHON_DIR)/$(LOCALE_DIR)/.tx/config \ - -e "s|^file_filter = .*|&\nx&|;" \ - -e "s|^source_file = pot/|source_file = $(LOCALE_RELATIVE)/pot/|" \ - > .tx/config - @sed -i .tx/config \ - -e "s|^xfile_filter = .//LC_MESSAGES/|trans.$(LANGUAGE) = |;" - - -# tx-install: Install Transifex CLI client if not installed yet. Installs -# the TX_CLI_VERSION version into TX_CLI_DIR directory. If -# TX_CLI_VERSION not provided, uses the latest one. -tx-install: URL := https://raw.githubusercontent.com/transifex/cli/master/install.sh -tx-install: - @if [ ! -x "$(TX_CLI_DIR)/tx" ]; then \ - echo "Transifex TX Client not found, installing ..."; \ - cd "$(TX_CLI_DIR)"; \ - if [ -n "v$(TX_CLI_VERSION)" ]; then \ - curl -s -o- $(URL) | bash -s -- v$(TX_CLI_VERSION); \ - else \ - curl -s -o- $(URL) | bash; \ - fi; \ - fi - - -# pot: After running "setup" target, run sphinx-build's gettext target -# to generate .pot files under $(CPYTHON_DIR)/Doc/locales/pot. -pot: setup - @$(MAKE) -C $(CPYTHON_DIR)/Doc/ \ - VENVDIR=./venv \ - PYTHON=$(PYTHON) \ - ALLSPHINXOPTS='-E \ - -b gettext \ - -D gettext_compact=0 \ - -d build/.doctrees \ - . $(CPYTHON_DIR)/$(LOCALE_DIR)/pot' \ - build - - -# setup: After running "venv" target, prepare that virtual environment with -# a local clone of cpython repository and the translation files. -# If the directories exists, only update the cpython repository and -# the translation files copy which could have new/updated files. -setup: CPYTHON_URL := https://github.com/python/cpython -setup: venv - @if [ -z "$(BRANCH)" ]; then \ - echo "BRANCH is empty, should have git-branch. Unable to continue."; \ - exit 1; \ - fi - - @if ! [ -d "$(CPYTHON_DIR)" ]; then \ - echo "CPython repo not found; cloning ..."; \ - git clone --depth 1 --no-single-branch $(CPYTHON_URL) $(CPYTHON_DIR); \ - git -C "$(CPYTHON_DIR)" checkout $(BRANCH); \ - else \ - echo "CPython repo found; updating ..."; \ - git -C "$(CPYTHON_DIR)" checkout $(BRANCH); \ - git -C "$(CPYTHON_DIR)" pull --rebase; \ - fi - - @echo "Creating CPython's documentation virtual environment ..." - @if [ ! -d "$(CPYTHON_DIR)/Doc/venv" ]; then \ - $(MAKE) -C "$(CPYTHON_DIR)/Doc" PYTHON=$(PYTHON) venv; \ - fi - - -# venv: create a virtual environment which will be used by almost every -# other target of this script. CPython specific packages are installed -# in there specific venv (see 'setup' target). -venv: - @if [ ! -d "$(VENV_DIR)" ]; then \ - echo "Setting up language team's virtual environment ..."; \ - "$(PYTHON)" -m venv "$(VENV_DIR)"; \ - "$(VENV_DIR)/bin/python" -m pip install --upgrade pip; \ - mkdir -p "$(LOGS_DIR)"; \ - "$(VENV_DIR)/bin/pip" install --requirement requirements.txt \ - --log "$(LOGS_DIR)/venv-$(NOW).txt"; \ - fi - - -# htmlview: View the documentation locally, using Makefile's "htmlview" target. -# Run "build" before using this target. -htmlview: build - @INDEX="$(CPYTHON_DIR)/Doc/build/html/index.html"; \ - "$(PYTHON)" -c "import os, webbrowser; \ - webbrowser.open('file://' + os.path.realpath('$$INDEX'))" - - -# spell: run spell checking tool in all po files listed in SRCS variable, -# storing the output in text files DESTS for proofreading. The -# DESTS target run the spellchecking, while the typos.txt target -# gather all reported issues in one file, sorted without redundancy. -SRCS := $(wildcard *.po **/*.po) -DESTS := $(addprefix $(LOGS_DIR)/pospell-$(NOW)/out/,$(patsubst %.po,%.txt,$(SRCS))) -spell: venv $(DESTS) $(LOGS_DIR)/pospell-$(NOW)/all.txt - -$(LOGS_DIR)/pospell-$(NOW)/out/%.txt: %.po dict - @echo "Checking $< ..." - @mkdir -p $(@D) - @$(VENV_DIR)/bin/pospell -l "$(LANGUAGE)" -p dict $< > $@ || true - -$(LOGS_DIR)/pospell-$(NOW)/all.txt: - @echo "Gathering all typos in $(LOGS_DIR)/pospell-$(NOW)/all.txt ..." - @cut -d: -f3- $(DESTS) | sort -u > $@ - - -# merge: Merge translations from BRANCH (Python version currently aim of -# translation) into each branch listed by BUGFIXBRANCH and -# OLDERBRANCHES (branches of older Python versions) so that older -# versions of the Python Docs try make at least some use of the latest -# translations. OLDERBRANCHES has '--no-overwrite' flag so it does not -# overwrite translated strings, preserving history. -# After merging, only commit and push only if any file was git-added -# (staged) to the target branch; otherwise, it does nothing. -merge: venv $(BUGFIXBRANCH) $(OLDERBRANCHES) - -$(OLDERBRANCHES): OVERWRITEFLAG = --no-overwrite -$(BUGFIXBRANCH) $(OLDERBRANCHES): - @if [[ $@ == $(BRANCH) ]]; then \ - echo "Ignoring attempt to pomerge '$(BRANCH)' into itself."; \ - else \ - echo "Merging translations from $(BRANCH) branch into $@ ..."; \ - $(VENV_DIR)/bin/pomerge --from-files *.po **/*.po; \ - git checkout $@; \ - $(VENV_DIR)/bin/pomerge $(OVERWRITEFLAG) --to-files *.po **/*.po; \ - $(VENV_DIR)/bin/powrap --modified *.po **/*.po; \ - git add -u; \ - if [ -n "$(git diff --name-only --cached)" ]; then \ - git commit -m $(MSG); \ - git push; \ - else \ - echo 'Nothing to commit'; \ - fi; \ - git checkout $(BRANCH); \ - fi - - -# lint: Report reStructuredText syntax errors in the translation files -lint: venv - @mkdir -p "$(LOGS_DIR)" - @$(VENV_DIR)/bin/sphinx-lint *.po **/*.po |& \ - tee -a $(LOGS_DIR)/lint-$(NOW).txt || true - @echo "Lint output stored in $(LOGS_DIR)/lint-$(NOW).txt" - - -# clean: remove all .mo files and the venv directory that may exist and could -# have been created by the actions in other targets of this script. -clean: - rm -rf "$(VENV_DIR)" - rm -rf "$(CPYTHON_DIR)/$(LOCALE_DIR)" - [ -d "$(CPYTHON_DIR)" ] && $(MAKE) -C "$(CPYTHON_DIR)/Doc" clean-venv diff --git a/README.md b/README.md index 42d958ca3..6bd1ae291 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,19 @@ # Brazilian Portuguese Translation of the Python Documentation -[![Update](https://github.com/python/python-docs-pt-br/actions/workflows/update.yml/badge.svg)](https://github.com/python/python-docs-pt-br/actions/workflows/update.yml) -[![Check](https://github.com/python/python-docs-pt-br/actions/workflows/check.yml/badge.svg)](https://github.com/python/python-docs-pt-br/actions/workflows/check.yml) +[![Workflow status badge][workflow_badge]][workflow_url] +[![Translation statistics badge][stats_badge]][transifex_url] -Check our [wiki](https://github.com/python/python-docs-pt-br/wiki) for more guidance on translating +Translation files for [Python 3.12 docs][docs_url]. -## Translation priorities +See list of incomplete translations in the [potodo.md][potodo] file. -The following modules we consider as priority targets, hence should -receive more attention than other modules/pages (0 has higher priority -than 2). Please helps assure they are a 100% translated. +See [main][main] branch for scripts, docs, license and more info. -### Priority 0 (probably they are completed) - - bugs - - glossary - - library/functions - - library/index - - library/intro - - library/constants - - library/stdtypes - - library/exceptions - - sphinx - - tutorial/ (all!) +[main]: https://github.com/python/python-docs-pt-br/tree/main +[potodo]: potodo.md?plain=1 +[docs_url]: https://docs.python.org/pt-br/3.12/ +[workflow_badge]: https://github.com/python/python-docs-pt-br/workflows/python-312/badge.svg +[workflow_url]: https://github.com/python/python-docs-pt-br/actions?workflow=python-312 +[stats_badge]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.12%2Fstats.json&query=completion&label=pt_BR +[transifex_url]: https://app.transifex.com/python-doc/python-newest/ -### Priority 1 - - reference/ (all) - - faq/ (all) - -### Priority 2 - - library/turtle - - library/sys - - library/argparse - - library/random - - library/statistics - - library/urllib.request - - library/smtplib - - library/datetime - - library/zlib - - library/gzip - - library/lzma - - library/tarfile - - library/timeit - - library/profile - - library/doctest - - library/unittest - - library/ (except the ones mentioned above) - -## Documentation Contribution Agreement - -NOTE REGARDING THE LICENSE FOR TRANSLATIONS: Python's documentation is -maintained using a global network of volunteers. By posting this -project on Transifex, GitHub, and other public places, and inviting -you to participate, we are proposing an agreement that you will -provide your improvements to Python's documentation or the translation -of Python's documentation for the PSF's use under the CC0 license -(available at -https://creativecommons.org/publicdomain/zero/1.0/legalcode). In -return, you may publicly claim credit for the portion of the -translation you contributed and if your translation is accepted by the -PSF, you may (but are not required to) submit a patch including an -appropriate annotation in the Misc/ACKS or TRANSLATORS file. Although -nothing in this Documentation Contribution Agreement obligates the PSF -to incorporate your textual contribution, your participation in the -Python community is welcomed and appreciated. - -You signify acceptance of this agreement by submitting your work to -the PSF for inclusion in the documentation. diff --git a/about.po b/about.po index 443f96bc8..39c8248d4 100644 --- a/about.po +++ b/about.po @@ -1,46 +1,43 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# André Girol , 2021 -# Amanda Savluchinske , 2021 -# Adorilson Bezerra , 2021 -# Clara Matos, 2022 -# Rafael Fontenelle , 2022 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2022\n" +"POT-Creation-Date: 2026-04-29 17:39+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../about.rst:3 -msgid "About these documents" -msgstr "Sobre esses documentos" +msgid "About this documentation" +msgstr "Sobre esta documentação" #: ../../about.rst:6 msgid "" -"These documents are generated from `reStructuredText`_ sources by `Sphinx`_, " -"a document processor specifically written for the Python documentation." +"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 "" -"Esses documentos são gerados a partir de `reStructuredText`_ pelo `Sphinx`_, " -"um processador de documentos especificamente escrito para documentação " -"Python." +"A documentação do Python é gerada a partir de fontes `reStructuredText`_ " +"usando `Sphinx`_, um gerador de documentação criado originalmente para " +"Python e agora mantido como um projeto independente." -#: ../../about.rst:15 +#: ../../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 " @@ -52,19 +49,19 @@ msgstr "" "dê uma olhada na página :ref:`reporting-bugs` para informações sobre como " "fazer. Novos voluntários são sempre bem-vindos!" -#: ../../about.rst:20 +#: ../../about.rst:21 msgid "Many thanks go to:" msgstr "Agradecimentos especiais para:" -#: ../../about.rst:22 +#: ../../about.rst:23 msgid "" "Fred L. Drake, Jr., the creator of the original Python documentation toolset " -"and writer of much of the content;" +"and author of much of the content;" msgstr "" "Fred L. Drake, Jr., o criador do primeiro conjunto de ferramentas para " -"documentar Python e escritor de boa parte do conteúdo;" +"documentar Python e autor de boa parte do conteúdo;" -#: ../../about.rst:24 +#: ../../about.rst:25 msgid "" "the `Docutils `_ project for creating " "reStructuredText and the Docutils suite;" @@ -72,7 +69,7 @@ msgstr "" "O projeto `Docutils `_ por criar " "reStructuredText e o pacote Docutils;" -#: ../../about.rst:26 +#: ../../about.rst:27 msgid "" "Fredrik Lundh for his Alternative Python Reference project from which Sphinx " "got many good ideas." @@ -80,21 +77,21 @@ msgstr "" "Fredrik Lundh, pelo seu projeto de referência alternativa em Python, do qual " "Sphinx pegou muitas boas ideias." -#: ../../about.rst:31 -msgid "Contributors to the Python Documentation" -msgstr "Contribuidores da Documentação Python" +#: ../../about.rst:32 +msgid "Contributors to the Python documentation" +msgstr "Contribuidores da documentação do Python" -#: ../../about.rst:33 +#: ../../about.rst:34 msgid "" "Many people have contributed to the Python language, the Python standard " "library, and the Python documentation. See :source:`Misc/ACKS` in the " "Python source distribution for a partial list of contributors." msgstr "" -"Muitas pessoas tem contribuído para a linguagem Python, sua biblioteca " +"Muitas pessoas têm contribuído para a linguagem Python, sua biblioteca " "padrão e sua documentação. Veja :source:`Misc/ACKS` na distribuição do " "código do Python para ver uma lista parcial de contribuidores." -#: ../../about.rst:37 +#: ../../about.rst:38 msgid "" "It is only with the input and contributions of the Python community that " "Python has such wonderful documentation -- Thank You!" diff --git a/bugs.po b/bugs.po index 248b69381..58b959e06 100644 --- a/bugs.po +++ b/bugs.po @@ -1,28 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Felipefpl, 2021 -# Ana Carolina Gomes, 2023 -# Vitor Buxbaum Orlandi, 2023 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-03 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -38,17 +35,17 @@ msgid "" msgstr "" "O Python é uma linguagem de programação madura que estabeleceu uma reputação " "pela estabilidade. A fim de manter esta reputação os desenvolvedores " -"gostariam de saber de quaisquer deficiências que você encontrar no Python." +"gostariam de saber de quaisquer deficiências que você encontre no Python." #: ../../bugs.rst:11 msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " -"Python as it streamlines the process and involves less people. Learn how to :" -"ref:`contribute `." +"Python as it streamlines the process and involves less people. Learn how " +"to :ref:`contribute `." msgstr "" -"Às vezes, pode ser mais rápido consertar os bugs você mesmo e contribuir " -"com patches para o Python uma vez que isso agiliza o processo e envolve " -"menos pessoas. Veja aqui como :ref:`contribuir `." +"Às vezes, pode ser mais rápido consertar os bugs você mesmo e contribuir com " +"patches para o Python uma vez que isso agiliza o processo e envolve menos " +"pessoas. Veja aqui como :ref:`contribuir `." #: ../../bugs.rst:16 msgid "Documentation bugs" @@ -122,7 +119,7 @@ msgid "" "`Helping with Documentation `_" msgstr "" -"`Ajudando com a Documentação `_" #: ../../bugs.rst:43 @@ -138,7 +135,7 @@ msgid "" "`Documentation Translations `_" msgstr "" -"`Traduções da Documentação `_" #: ../../bugs.rst:46 @@ -244,7 +241,7 @@ msgid "" "`How to Report Bugs Effectively `_" msgstr "" -"`Como Reportar Bugs Eficientemente `_" #: ../../bugs.rst:92 diff --git a/c-api/abstract.po b/c-api/abstract.po index d21d0d087..54ffc7b26 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Felipefpl, 2021 -# Rafael Fontenelle , 2022 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2022\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -35,20 +34,18 @@ msgid "" "or all sequence types). When used on object types for which they do not " "apply, they will raise a Python exception." msgstr "" -"As funções neste capítulo interagem com os objetos do Python " -"independentemente do tipo deles ou com classes amplas dos tipos de objetos " -"(por exemplo, todos os tipos numéricos ou todos os tipos de sequência). " -"Quando usado nos tipos de objetos pros quais eles não se aplicam eles " -"levantarão uma exceção no Python." +"As funções neste capítulo interagem com objetos Python independentemente do " +"seu tipo, ou com classes amplas de tipos de objetos (por exemplo, todos os " +"tipos numéricos ou todos os tipos de sequência). Quando usadas em tipos de " +"objetos para os quais não se aplicam, elas irão levantar uma exceção 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." +"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 "" -"Não é possível usar estas funções em objetos que não estão apropriadamente " -"inicializados, tal como uma objeto de lista que foi criado por :c:func:" -"`PyList_New`, mas cujos itens não foram definidos como algum valor não " -"``NULL`` ainda." +"Não é possível usar essas funções em objetos que não foram inicializados " +"corretamente, como um objeto de lista criado por :c:func:`PyList_New`, mas " +"cujos itens ainda não foram definidos para algum valor diferente de ``NULL``." diff --git a/c-api/allocation.po b/c-api/allocation.po index 03ec6394e..68c413fb3 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -1,48 +1,42 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Welington Carlos , 2021 -# Felipefpl, 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/allocation.rst:6 msgid "Allocating Objects on the Heap" -msgstr "Alocando Objetos na Pilha" +msgstr "Alocando objetos na heap" #: ../../c-api/allocation.rst:17 msgid "" "Initialize a newly allocated object *op* with its type and initial " -"reference. Returns the initialized object. If *type* indicates that the " -"object participates in the cyclic garbage detector, it is added to the " -"detector's set of observed objects. Other fields of the object are not " -"affected." +"reference. Returns the initialized object. Other fields of the object are " +"not affected." msgstr "" "Inicializa um objeto *op* recém-alocado com seu tipo e referência inicial. " -"Retorna o objeto inicializado. Se o *type* indica que o objeto participa no " -"detector de lixo cíclico ele é adicionado ao grupo do detector de objetos " -"observados. Outros campos do objeto não são afetados." +"Retorna o objeto inicializado. Outros campos do objeto não são afetados." -#: ../../c-api/allocation.rst:26 +#: ../../c-api/allocation.rst:24 msgid "" "This does everything :c:func:`PyObject_Init` does, and also initializes the " "length information for a variable-size object." @@ -50,23 +44,33 @@ msgstr "" "Isto faz tudo que o :c:func:`PyObject_Init` faz e também inicializa a " "informação de comprimento para um objeto de tamanho variável." -#: ../../c-api/allocation.rst:32 +#: ../../c-api/allocation.rst:30 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 caller will own the only " "reference to the object (i.e. its reference count will be one). The size of " -"the memory allocation is determined from the :c:member:`~PyTypeObject." -"tp_basicsize` field of the type object." +"the memory allocation is determined from " +"the :c:member:`~PyTypeObject.tp_basicsize` field of the type object." msgstr "" "Aloca um novo objeto Python usando o tipo de estrutura do C *TYPE* e o " "objeto Python do tipo *typeobj* (``PyTypeObject*``). Campos não definidos " "pelo cabeçalho do objeto Python não são inicializados. O chamador será dono " "da apenas a referência ao objeto (isto é, sua contagem de referências será " -"uma). O tamanho da alocação de memória é determinado do campo :c:member:" -"`~PyTypeObject.tp_basicsize` do objeto tipo." +"uma). O tamanho da alocação de memória é determinado do " +"campo :c:member:`~PyTypeObject.tp_basicsize` do objeto tipo." + +#: ../../c-api/allocation.rst:38 +msgid "" +"Note that this function is unsuitable if *typeobj* " +"has :c:macro:`Py_TPFLAGS_HAVE_GC` set. For such objects, " +"use :c:func:`PyObject_GC_New` instead." +msgstr "" +"Note que esta função não é adequada se *typeobj* " +"tiver :c:macro:`Py_TPFLAGS_HAVE_GC` definido. Para tais objetos, " +"use :c:func:`PyObject_GC_New` em vez disso." -#: ../../c-api/allocation.rst:43 +#: ../../c-api/allocation.rst:45 msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " "Python type object *typeobj* (``PyTypeObject*``). Fields not defined by the " @@ -88,21 +92,31 @@ msgstr "" "campos dentro da mesma alocação diminuindo o numero de alocações, melhorando " "a eficiência do gerenciamento de memória." -#: ../../c-api/allocation.rst:57 +#: ../../c-api/allocation.rst:56 +msgid "" +"Note that this function is unsuitable if *typeobj* " +"has :c:macro:`Py_TPFLAGS_HAVE_GC` set. For such objects, " +"use :c:func:`PyObject_GC_NewVar` instead." +msgstr "" +"Note que esta função não é adequada se *typeobj* " +"tiver :c:macro:`Py_TPFLAGS_HAVE_GC` definido. Para tais objetos, " +"use :c:func:`PyObject_GC_NewVar` em vez disso." + +#: ../../c-api/allocation.rst:63 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." +"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 "" -"Libera memória alocada a um objeto usando :c:macro:`PyObject_New` ou :c:" -"macro:`PyObject_NewVar`. Isto é normalmente chamado pelo manipulador de :c:" -"member:`~PyTypeObject.tp_dealloc` especificado no tipo do objeto. Os campos " -"do objeto não devem ser acessados após esta chamada como a memória não é " -"mais um objeto Python válido." +"Libera memória alocada a um objeto usando :c:macro:`PyObject_New` " +"ou :c:macro:`PyObject_NewVar`. Isto é normalmente chamado pelo manipulador " +"de :c:member:`~PyTypeObject.tp_dealloc` especificado no tipo do objeto. Os " +"campos do objeto não devem ser acessados após esta chamada como a memória " +"não é mais um objeto Python válido." -#: ../../c-api/allocation.rst:66 +#: ../../c-api/allocation.rst:72 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 " @@ -112,10 +126,10 @@ msgstr "" "usando a macro :c:macro:`Py_None`, o qual avalia como um ponteiro para este " "objeto." -#: ../../c-api/allocation.rst:73 +#: ../../c-api/allocation.rst:79 msgid ":c:func:`PyModule_Create`" msgstr ":c:func:`PyModule_Create`" -#: ../../c-api/allocation.rst:74 +#: ../../c-api/allocation.rst:80 msgid "To allocate and create extension modules." msgstr "Para alocar e criar módulos de extensão." diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index e61fc9f0f..b00ac9832 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -1,28 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Welington Carlos , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Felipefpl, 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/arg.po b/c-api/arg.po index fc3294c92..85d061284 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -1,34 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Hildeberto Abreu Magalhães , 2021 -# Welington Carlos , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Adson Rodrigues , 2021 -# Rafael Marques , 2021 -# Caio Carvalho , 2021 -# Adorilson Bezerra , 2022 -# Welliton Malta , 2023 -# Julia Rizza , 2023 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-03 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -38,26 +29,27 @@ msgstr "Análise de argumentos e construção de valores" #: ../../c-api/arg.rst:8 msgid "" -"These functions are useful when creating your own extensions functions and " -"methods. Additional information and examples are available in :ref:" -"`extending-index`." +"These functions are useful when creating your own extension functions and " +"methods. Additional information and examples are available " +"in :ref:`extending-index`." msgstr "" -"Essas funções são úteis ao criar funções e métodos das suas extensões. " -"Informações adicionais e exemplos estão disponíveis em :ref:`extending-" -"index`." +"Essas funções são úteis ao criar suas próprias funções e métodos de " +"extensão. Informações adicionais e exemplos estão disponíveis " +"em :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." +"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 "" -"As três primeiras funções descritas, :c:func:`PyArg_ParseTuple`, :c:func:" -"`PyArg_ParseTupleAndKeywords`, e :c:func:`PyArg_Parse`, todas usam a *string " -"de formatação* que informam à função sobre os argumentos esperados. As " -"strings de formato usam a mesma sintaxe para cada uma dessas funções." +"As três primeiras funções " +"descritas, :c:func:`PyArg_ParseTuple`, :c:func:`PyArg_ParseTupleAndKeywords`, " +"e :c:func:`PyArg_Parse`, todas usam a *string de formatação* que informam à " +"função sobre os argumentos esperados. As strings de formato usam a mesma " +"sintaxe para cada uma dessas funções." #: ../../c-api/arg.rst:19 msgid "Parsing arguments" @@ -86,7 +78,7 @@ msgstr "" #: ../../c-api/arg.rst:31 msgid "Strings and buffers" -msgstr "Strings and buffers" +msgstr "Strings e buffers" #: ../../c-api/arg.rst:33 msgid "" @@ -116,13 +108,13 @@ msgid "" "call** :c:func:`PyBuffer_Release` after you have finished processing the " "data (or in any early abort case)." msgstr "" -"Formatos como ``y*`` e ``s*`` estão dentro de uma estrutura :c:type:" -"`Py_buffer`. Isso bloqueia o buffer subjacente para que o chamador possa " -"posteriormente usar o buffer, mesmo dentro de um bloco :c:type:" -"`Py_BEGIN_ALLOW_THREADS` sem que haja o risco de que dados mutáveis sejam " -"redimensionados ou destruídos. Dessa forma, **você precisa chamar** :c:func:" -"`PyBuffer_Release` depois de ter concluído o processamento de dados (ou em " -"qualquer caso de interrupção precoce)." +"Formatos como ``y*`` e ``s*`` estão dentro de uma " +"estrutura :c:type:`Py_buffer`. Isso bloqueia o buffer subjacente para que " +"o chamador possa posteriormente usar o buffer, mesmo dentro de um " +"bloco :c:type:`Py_BEGIN_ALLOW_THREADS` sem que haja o risco de que dados " +"mutáveis sejam redimensionados ou destruídos. Dessa forma, **você precisa " +"chamar** :c:func:`PyBuffer_Release` depois de ter concluído o processamento " +"de dados (ou em qualquer caso de interrupção precoce)." #: ../../c-api/arg.rst:48 msgid "" @@ -142,7 +134,7 @@ msgid "" "corresponding Python object, and shares the lifetime of this object. You " "won't have to release any memory yourself." msgstr "" -"Outros formatos usam um :class:`str` ou um :term:`objeto byte ou similar` " +"Outros formatos usam um :class:`str` ou um :term:`objeto bytes ou similar` " "somente leitura, como :class:`bytes`, e fornecem um ponteiro ``const char " "*`` para seu buffer. Nesse caso, o buffer é \"emprestado\": ele é gerenciado " "pelo objeto Python correspondente e compartilha o tempo de vida desse " @@ -150,16 +142,16 @@ msgstr "" #: ../../c-api/arg.rst:61 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`." +"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 "" "Para garantir que o buffer subjacente possa ser emprestado com segurança, o " "campo :c:member:`PyBufferProcs.bf_releasebuffer` do objeto deve ser " "``NULL``. Isso não permite objetos mutáveis comuns, como :class:`bytearray`, " -"mas também alguns objetos somente leitura, como :class:`memoryview` ou :" -"class:`bytes`." +"mas também alguns objetos somente leitura, como :class:`memoryview` " +"ou :class:`bytes`." #: ../../c-api/arg.rst:67 msgid "" @@ -173,17 +165,17 @@ msgstr "" #: ../../c-api/arg.rst:73 msgid "" -"For all ``#`` variants of formats (``s#``, ``y#``, etc.), the macro :c:macro:" -"`PY_SSIZE_T_CLEAN` must be defined before including :file:`Python.h`. On " -"Python 3.9 and older, the type of the length argument is :c:type:" -"`Py_ssize_t` if the :c:macro:`PY_SSIZE_T_CLEAN` macro is defined, or int " -"otherwise." +"For all ``#`` variants of formats (``s#``, ``y#``, etc.), the " +"macro :c:macro:`PY_SSIZE_T_CLEAN` must be defined before " +"including :file:`Python.h`. On Python 3.9 and older, the type of the length " +"argument is :c:type:`Py_ssize_t` if the :c:macro:`PY_SSIZE_T_CLEAN` macro is " +"defined, or int otherwise." msgstr "" -"Para todas as variantes de formatos ``#`` (``s#``, ``y#``, etc.), a macro :c:" -"macro:`PY_SSIZE_T_CLEAN` deve ser definida antes de incluir :file:`Python." -"h`. No Python 3.9 e mais antigo, o tipo do argumento de comprimento é :c:" -"type:`Py_ssize_t` se a macro :c:macro:`PY_SSIZE_T_CLEAN` é definida, ou int " -"caso contrário." +"Para todas as variantes de formatos ``#`` (``s#``, ``y#``, etc.), a " +"macro :c:macro:`PY_SSIZE_T_CLEAN` deve ser definida antes de " +"incluir :file:`Python.h`. No Python 3.9 e mais antigo, o tipo do argumento " +"de comprimento é :c:type:`Py_ssize_t` se a macro :c:macro:`PY_SSIZE_T_CLEAN` " +"é definida, ou int caso contrário." #: ../../c-api/arg.rst:80 msgid "``s`` (:class:`str`) [const char \\*]" @@ -210,13 +202,13 @@ msgstr "" 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*." +"strings, it is preferable to use the ``O&`` format " +"with :c:func:`PyUnicode_FSConverter` as *converter*." msgstr "" -"Esse formato não aceita :term:`objetos byte ou similar `. " -"Se você quer aceitar caminhos de arquivos do sistema e convertê-los para " -"strings em C, é preferível que use o formato ``O&`` com :c:func:" -"`PyUnicode_FSConverter` como *conversor*." +"Esse formato não aceita :term:`objetos bytes ou similares `. Se você quer aceitar caminhos de sistema de arquivos e convertê-" +"los para strings de caracteres em C, é preferível que use o formato ``O&`` " +"com :c:func:`PyUnicode_FSConverter` como *conversor*." #: ../../c-api/arg.rst:96 msgid "" @@ -228,9 +220,7 @@ msgstr "" #: ../../c-api/arg.rst:100 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" -msgstr "" -"``s*`` (:class:`str` ou :term:`objeto byte ou similar `) " -"[Py_buffer]" +msgstr "``s*`` (:class:`str` ou :term:`objeto bytes ou similar`) [Py_buffer]" #: ../../c-api/arg.rst:101 msgid "" @@ -239,17 +229,17 @@ msgid "" "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" -"Esse formato aceita tanto objetos Unicode quanto objetos byte ou similar. " +"Esse formato aceita tanto objetos Unicode quanto objetos bytes ou similares. " "Preenche uma estrutura :c:type:`Py_buffer` fornecida pelo chamador. Nesse " "caso, a string em C resultante pode conter bytes NUL embutidos. Objetos " "Unicode são convertidos para strings em C usando codificação ``'utf-8'``." #: ../../c-api/arg.rst:106 msgid "" -"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, :" -"c:type:`Py_ssize_t`]" +"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char " +"\\*, :c:type:`Py_ssize_t`]" msgstr "" -"``s#`` (:class:`str`, :term:`objeto byte ou similar ` " +"``s#`` (:class:`str`, :term:`objeto bytes ou similar ` " "somente leitura) [const char \\*, :c:type:`Py_ssize_t`]" #: ../../c-api/arg.rst:107 @@ -266,7 +256,7 @@ msgstr "" "pode conter bytes nulos embutidos. Objetos Unicode são convertidos para " "strings em C usando codificação ``'utf-8'``." -#: ../../c-api/arg.rst:113 ../../c-api/arg.rst:546 +#: ../../c-api/arg.rst:113 ../../c-api/arg.rst:558 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "``z`` (:class:`str` ou ``None``) [const char \\*]" @@ -275,45 +265,44 @@ msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " "pointer is set to ``NULL``." msgstr "" -"Como ``s``, mas o objeto Python também pode ser ``None``, nesse caso o " +"Como ``s``, mas o objeto Python também pode ser ``None``, caso em que o " "ponteiro C é definido como ``NULL``." #: ../../c-api/arg.rst:117 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" -"``z*`` (:class:`str`, :term:`objeto byte ou similar ` ou " -"``None``) [Py_buffer]" +"``z*`` (:class:`str`, :term:`objeto bytes ou similar` 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 "" -"Como ``s*``, mas o objeto Python também pode ser ``None``, nesse caso o " -"membro ``buf`` da estrutura :c:type:`Py_buffer` é definido como ``NULL``." +"Como ``s*``, mas o objeto Python também pode ser ``None``, caso em que o " +"membro ``buf`` da estrutura :c:type:`Py_buffer` é definida como ``NULL``." #: ../../c-api/arg.rst:121 msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " "[const char \\*, :c:type:`Py_ssize_t`]" msgstr "" -"``z#`` (:class:`str`, :term:`objeto byte ou similar ` " -"somente leitura ou ``None``) [const char \\*, :c:type:`Py_ssize_t`]" +"``z#`` (:class:`str`, :term:`objeto bytes ou similar` somente leitura ou " +"``None``) [const char \\*, :c:type:`Py_ssize_t`]" #: ../../c-api/arg.rst:122 msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C " "pointer is set to ``NULL``." msgstr "" -"Como ``s#``, mas o objeto Python também pode ser ``None``, nesse caso o " +"Como ``s#``, mas o objeto Python também pode ser ``None``, caso em que o " "ponteiro C é definido como ``NULL``." #: ../../c-api/arg.rst:125 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" -"``y`` (:term:`objeto byte ou similar ` somente leitura) " -"[const char \\*]" +"``y`` (:term:`objeto bytes ou similar` somente leitura) [const char \\*]" #: ../../c-api/arg.rst:126 msgid "" @@ -322,7 +311,7 @@ msgid "" "objects. The bytes buffer must not contain embedded null bytes; if it does, " "a :exc:`ValueError` exception is raised." msgstr "" -"Este formato converte um objeto byte ou similar para um ponteiro C para uma " +"Este formato converte um objeto bytes ou similar para um ponteiro C para uma " "string de caracteres :ref:`emprestada `; não aceita " "objetos Unicode. O buffer de bytes não pode conter bytes nulos embutidos; se " "isso ocorrer uma exceção :exc:`ValueError` será levantada." @@ -337,32 +326,31 @@ msgstr "" #: ../../c-api/arg.rst:136 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" -msgstr "" -"``y*`` (:term:`objeto byte ou similar `) [Py_buffer]" +msgstr "``y*`` (:term:`objeto bytes ou similar`) [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 "" -"Esta variante em ``s*`` não aceita objetos unicode, apenas objetos byte ou " -"similar. **Esta é a maneira recomendada para aceitar dados binários.**" +"Esta variante em ``s*`` não aceita objetos unicode, apenas objetos bytes ou " +"similares. **Esta é a maneira recomendada para aceitar dados binários.**" #: ../../c-api/arg.rst:141 msgid "" -"``y#`` (read-only :term:`bytes-like object`) [const char \\*, :c:type:" -"`Py_ssize_t`]" +"``y#`` (read-only :term:`bytes-like object`) [const char " +"\\*, :c:type:`Py_ssize_t`]" msgstr "" -"``y#`` (:term:`objeto byte ou similar ` somente leitura) " -"[const char \\*, :c:type:`Py_ssize_t`]" +"``y#`` (:term:`objeto bytes ou similar` somente leitura) [const char " +"\\*, :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 "" -"Esta variação de ``s#`` não aceita objetos Unicode, apenas objetos byte ou " -"similar." +"Esta variação de ``s#`` não aceita objetos Unicode, apenas objetos bytes ou " +"similares." #: ../../c-api/arg.rst:145 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" @@ -385,14 +373,14 @@ msgstr "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" #: ../../c-api/arg.rst:151 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*`." +"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 "" "Exige que o objeto Python seja um objeto :class:`bytearray`, sem aceitar " -"qualquer conversão. Levanta :exc:`TypeError` se o objeto não é um objeto :" -"class:`bytearray`. A variável C apenas pode ser declarada como :c:expr:" -"`PyObject*`." +"qualquer conversão. Levanta :exc:`TypeError` se o objeto não é um " +"objeto :class:`bytearray`. A variável C apenas pode ser declarada " +"como :c:expr:`PyObject*`." #: ../../c-api/arg.rst:155 msgid "``U`` (:class:`str`) [PyObject \\*]" @@ -411,15 +399,14 @@ msgstr "" #: ../../c-api/arg.rst:160 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "" -"``w*`` (:term:`objeto byte ou similar ` de leitura e " -"escrita) [Py_buffer]" +"``w*`` (:term:`objeto bytes ou similar` de leitura e escrita) [Py_buffer]" #: ../../c-api/arg.rst:161 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 have to call :c:func:" -"`PyBuffer_Release` when it is done with the buffer." +"The buffer may contain embedded null bytes. The caller have to " +"call :c:func:`PyBuffer_Release` when it is done with the buffer." msgstr "" "Este formato aceita qualquer objeto que implemente a interface do buffer de " "leitura e escrita. Ele preenche uma estrutura :c:type:`Py_buffer` fornecida " @@ -462,13 +449,13 @@ msgstr "" 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." +"newly allocated storage. The caller is responsible for " +"calling :c:func:`PyMem_Free` to free the allocated buffer after use." msgstr "" ":c:func:`PyArg_ParseTuple` alocará um buffer do tamanho necessário, copiará " "os dados codificados nesse buffer e ajustará *\\*buffer* para referenciar o " -"armazenamento recém-alocado. O chamador é responsável por chamar :c:func:" -"`PyMem_Free` para liberar o buffer alocado após o uso." +"armazenamento recém-alocado. O chamador é responsável por " +"chamar :c:func:`PyMem_Free` para liberar o buffer alocado após o uso." #: ../../c-api/arg.rst:183 msgid "" @@ -484,17 +471,17 @@ msgid "" "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -"O mesmo que ``es``, exceto que os objetos de cadeia de bytes são passados ​​" -"sem os recodificar. Em vez disso, a implementação assume que o objeto de " -"cadeia de bytes usa a codificação passada como parâmetro." +"O mesmo que ``es``, exceto que os objetos strings de bytes são passados sem " +"os recodificar. Em vez disso, a implementação presume que o objeto string de " +"bytes usa a codificação passada como parâmetro." #: ../../c-api/arg.rst:188 msgid "" -"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" -"`Py_ssize_t` \\*buffer_length]" +"``es#`` (:class:`str`) [const char \\*encoding, char " +"\\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" -"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" -"`Py_ssize_t` \\*buffer_length]" +"``es#`` (:class:`str`) [const char \\*encoding, char " +"\\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" #: ../../c-api/arg.rst:189 msgid "" @@ -518,8 +505,8 @@ msgid "" "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 "" -"Exige três argumentos. O primeiro é usado apenas como entrada e deve ser a :" -"c:expr:`const char*` que aponta para o nome de uma codificação como uma " +"Exige três argumentos. O primeiro é usado apenas como entrada e deve ser " +"a :c:expr:`const char*` que aponta para o nome de uma codificação como uma " "string terminada em NUL ou ``NULL``, nesse caso a codificação ``'utf-8'`` é " "usada. Uma exceção será gerada se a codificação nomeada não for conhecida " "pelo Python. O segundo argumento deve ser um :c:expr:`char**`; o valor do " @@ -559,8 +546,8 @@ msgstr "" "alocado), :c:func:`PyArg_ParseTuple` irá usar essa localização como buffer e " "interpretar o valor inicial de *\\*buffer_length* como sendo o tamanho do " "buffer. Depois ela vai copiar os dados codificados para dentro do buffer e " -"terminá-lo com NUL. Se o buffer não for suficientemente grande, um :exc:" -"`ValueError` será definido." +"terminá-lo com NUL. Se o buffer não for suficientemente grande, " +"um :exc:`ValueError` será definido." #: ../../c-api/arg.rst:216 msgid "" @@ -584,9 +571,9 @@ msgid "" "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -"O mesmo que ``es#``, exceto que os objetos de cadeia de bytes são passados ​​" -"sem que sejam recodificados. Em vez disso, a implementação assume que o " -"objeto de cadeia de bytes usa a codificação passada como parâmetro." +"O mesmo que ``es#``, exceto que os objetos strings de bytes são passados sem " +"que sejam recodificados. Em vez disso, a implementação presume que o objeto " +"string de bytes usa a codificação passada como parâmetro." #: ../../c-api/arg.rst:224 msgid "" @@ -601,42 +588,71 @@ msgid "Numbers" msgstr "Números" #: ../../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 "" +"Esses formatos permitem representar números Python ou caracteres únicos como " +"números C. Formatos que exigem :class:`int`, :class:`float` " +"ou :class:`complex` também podem usar os métodos especiais " +"correspondentes :meth:`~object.__index__`, :meth:`~object.__float__` " +"ou :meth:`~object.__complex__` para converter o objeto Python para o tipo " +"necessário." + +#: ../../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, no range checking " +"is done --- the most significant bits are silently truncated when the " +"receiving field is too small to receive the value." +msgstr "" +"Para formatos inteiros com sinal, :exc:`OverflowError` é levantada se o " +"valor estiver fora do intervalo para o tipo C. Para formatos inteiros não " +"assinados, nenhuma verificação de intervalo é feita --- os bits mais " +"significativos são silenciosamente truncados quando o campo de recebimento é " +"muito pequeno para receber o valor." + +#: ../../c-api/arg.rst:244 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [unsigned char]" -#: ../../c-api/arg.rst:233 +#: ../../c-api/arg.rst:245 msgid "" -"Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" -"c:expr:`unsigned char`." +"Convert a nonnegative Python integer to an unsigned tiny integer, stored in " +"a C :c:expr:`unsigned char`." msgstr "" "Converte um inteiro Python não negativo em um inteiro pequeno sem sinal " -"(unsigned tiny int), armazenado em um :c:expr:`unsigned char` do C." +"(unsigned tiny integer), armazenado em um :c:expr:`unsigned char` do C." -#: ../../c-api/arg.rst:236 ../../c-api/arg.rst:580 +#: ../../c-api/arg.rst:248 ../../c-api/arg.rst:592 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [unsigned char]" -#: ../../c-api/arg.rst:237 +#: ../../c-api/arg.rst:249 msgid "" -"Convert a Python integer to a tiny int without overflow checking, stored in " -"a C :c:expr:`unsigned char`." +"Convert a Python integer to a tiny integer without overflow checking, stored " +"in a C :c:expr:`unsigned char`." msgstr "" -"Converte um inteiro Python para um inteiro pequeno (tiny int) sem " +"Converte um inteiro Python para um inteiro pequeno (tiny integer) sem " "verificação de estouro, armazenado em um :c:expr:`unsigned char` do C." -#: ../../c-api/arg.rst:240 ../../c-api/arg.rst:574 +#: ../../c-api/arg.rst:252 ../../c-api/arg.rst:586 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [short int]" -#: ../../c-api/arg.rst:241 +#: ../../c-api/arg.rst:253 msgid "Convert a Python integer to a C :c:expr:`short int`." msgstr "Converte um inteiro Python para um :c:expr:`short int` do C." -#: ../../c-api/arg.rst:243 ../../c-api/arg.rst:583 +#: ../../c-api/arg.rst:255 ../../c-api/arg.rst:595 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [unsigned short int]" -#: ../../c-api/arg.rst:244 +#: ../../c-api/arg.rst:256 msgid "" "Convert a Python integer to a C :c:expr:`unsigned short int`, without " "overflow checking." @@ -644,19 +660,19 @@ msgstr "" "Converte um inteiro Python para um :c:expr:`unsigned short int` do C, sem " "verificação de estouro." -#: ../../c-api/arg.rst:247 ../../c-api/arg.rst:568 +#: ../../c-api/arg.rst:259 ../../c-api/arg.rst:580 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [int]" -#: ../../c-api/arg.rst:248 +#: ../../c-api/arg.rst:260 msgid "Convert a Python integer to a plain C :c:expr:`int`." msgstr "Converte um inteiro Python para um :c:expr:`int` simples do C." -#: ../../c-api/arg.rst:250 ../../c-api/arg.rst:586 +#: ../../c-api/arg.rst:262 ../../c-api/arg.rst:598 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [unsigned int]" -#: ../../c-api/arg.rst:251 +#: ../../c-api/arg.rst:263 msgid "" "Convert a Python integer to a C :c:expr:`unsigned int`, without overflow " "checking." @@ -664,19 +680,19 @@ msgstr "" "Converte um inteiro Python para um :c:expr:`unsigned int` do C, sem " "verificação de estouro." -#: ../../c-api/arg.rst:254 ../../c-api/arg.rst:577 +#: ../../c-api/arg.rst:266 ../../c-api/arg.rst:589 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [long int]" -#: ../../c-api/arg.rst:255 +#: ../../c-api/arg.rst:267 msgid "Convert a Python integer to a C :c:expr:`long int`." msgstr "Converte um inteiro Python para um :c:expr:`long int` do C." -#: ../../c-api/arg.rst:257 ../../c-api/arg.rst:589 +#: ../../c-api/arg.rst:269 ../../c-api/arg.rst:601 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [unsigned long]" -#: ../../c-api/arg.rst:258 +#: ../../c-api/arg.rst:270 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long` without overflow " "checking." @@ -684,19 +700,19 @@ msgstr "" "Converte um inteiro Python para um :c:expr:`unsigned long` do C sem " "verificação de estouro." -#: ../../c-api/arg.rst:261 ../../c-api/arg.rst:592 +#: ../../c-api/arg.rst:273 ../../c-api/arg.rst:604 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [longo longo]" -#: ../../c-api/arg.rst:262 +#: ../../c-api/arg.rst:274 msgid "Convert a Python integer to a C :c:expr:`long long`." msgstr "Converte um inteiro Python para um :c:expr:`long long` do C." -#: ../../c-api/arg.rst:264 ../../c-api/arg.rst:595 +#: ../../c-api/arg.rst:276 ../../c-api/arg.rst:607 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [unsigned long long]" -#: ../../c-api/arg.rst:265 +#: ../../c-api/arg.rst:277 msgid "" "Convert a Python integer to a C :c:expr:`unsigned long long` without " "overflow checking." @@ -704,35 +720,35 @@ msgstr "" "Converte um inteiro Python para um :c:expr:`unsigned long long` do C sem " "verificação de estouro." -#: ../../c-api/arg.rst:268 ../../c-api/arg.rst:598 +#: ../../c-api/arg.rst:280 ../../c-api/arg.rst:610 msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" msgstr "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:269 +#: ../../c-api/arg.rst:281 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." msgstr "Converte um inteiro Python para um :c:type:`Py_ssize_t` do C." -#: ../../c-api/arg.rst:271 +#: ../../c-api/arg.rst:283 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de comprimento 1) [char]" -#: ../../c-api/arg.rst:272 +#: ../../c-api/arg.rst:284 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " "object of length 1, to a C :c:expr:`char`." msgstr "" -"Converte um byte Python, representado com um objeto :class:`byte` ou :class:" -"`bytearray` de comprimento 1, para um :c:expr:`char` do C." +"Converte um byte Python, representado com um objeto :class:`bytes` " +"ou :class:`bytearray` de comprimento 1, para um :c:expr:`char` do C." -#: ../../c-api/arg.rst:275 +#: ../../c-api/arg.rst:287 msgid "Allow :class:`bytearray` objects." msgstr "Permite objetos :class:`bytearray`." -#: ../../c-api/arg.rst:278 ../../c-api/arg.rst:605 +#: ../../c-api/arg.rst:290 ../../c-api/arg.rst:617 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` de comprimento 1) [int]" -#: ../../c-api/arg.rst:279 +#: ../../c-api/arg.rst:291 msgid "" "Convert a Python character, represented as a :class:`str` object of length " "1, to a C :c:expr:`int`." @@ -740,58 +756,58 @@ msgstr "" "Converte um caractere Python, representado como uma :class:`str` objeto de " "comprimento 1, para um :c:expr:`int` do C" -#: ../../c-api/arg.rst:282 ../../c-api/arg.rst:612 +#: ../../c-api/arg.rst:294 ../../c-api/arg.rst:624 msgid "``f`` (:class:`float`) [float]" msgstr "``f``` (:class:`float`) [float]" -#: ../../c-api/arg.rst:283 -msgid "Convert a Python floating point number to a C :c:expr:`float`." +#: ../../c-api/arg.rst:295 +msgid "Convert a Python floating-point number to a C :c:expr:`float`." msgstr "" "Converte um número de ponto flutuante Python para um :c:expr:`float` do C." -#: ../../c-api/arg.rst:285 ../../c-api/arg.rst:609 +#: ../../c-api/arg.rst:297 ../../c-api/arg.rst:621 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [double]" -#: ../../c-api/arg.rst:286 -msgid "Convert a Python floating point number to a C :c:expr:`double`." +#: ../../c-api/arg.rst:298 +msgid "Convert a Python floating-point number to a C :c:expr:`double`." msgstr "" "Converte um número de ponto flutuante Python para um :c:expr:`double` do C." -#: ../../c-api/arg.rst:288 +#: ../../c-api/arg.rst:300 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [Py_complex]" -#: ../../c-api/arg.rst:289 +#: ../../c-api/arg.rst:301 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" "Converte um número complexo Python para uma estrutura C :c:type:`Py_complex`" -#: ../../c-api/arg.rst:292 +#: ../../c-api/arg.rst:304 msgid "Other objects" msgstr "Outros objetos" -#: ../../c-api/arg.rst:294 ../../c-api/arg.rst:618 +#: ../../c-api/arg.rst:306 ../../c-api/arg.rst:630 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (objeto) [PyObject\\*]" -#: ../../c-api/arg.rst:295 +#: ../../c-api/arg.rst:307 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``." +"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 "" "Armazena um objeto Python (sem qualquer conversão) em um ponteiro de objeto " -"C. O programa C então recebe o objeto real que foi passado. Uma nova :term:" -"`referência forte` ao objeto não é criado (isto é sua contagem de " +"C. O programa C então recebe o objeto real que foi passado. Uma " +"nova :term:`referência forte` ao objeto não é criado (isto é sua contagem de " "referências não é aumentada). O ponteiro armazenado não é ``NULL``." -#: ../../c-api/arg.rst:301 +#: ../../c-api/arg.rst:313 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (objeto) [*typeobject*, PyObject \\*]" -#: ../../c-api/arg.rst:302 +#: ../../c-api/arg.rst:314 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 " @@ -801,15 +817,15 @@ msgid "" msgstr "" "Armazena um objeto Python em um ponteiro de objeto C. Isso é similar a " "``O``, mas usa dois argumentos C: o primeiro é o endereço de um objeto do " -"tipo Python, o segundo é um endereço da variável C (de tipo :c:expr:" -"`PyObject*`) no qual o ponteiro do objeto está armazenado. Se o objeto " -"Python não tiver o tipo necessário, :exc:`TypeError` é levantada." +"tipo Python, o segundo é um endereço da variável C (de " +"tipo :c:expr:`PyObject*`) no qual o ponteiro do objeto está armazenado. Se o " +"objeto Python não tiver o tipo necessário, :exc:`TypeError` é levantada." -#: ../../c-api/arg.rst:310 ../../c-api/arg.rst:636 -msgid "``O&`` (object) [*converter*, *anything*]" -msgstr "``O&`` (objeto) [*converter*, *anything*]" +#: ../../c-api/arg.rst:322 +msgid "``O&`` (object) [*converter*, *address*]" +msgstr "``O&`` (objeto) [*converter*, *address*]" -#: ../../c-api/arg.rst:311 +#: ../../c-api/arg.rst:323 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 " @@ -818,47 +834,60 @@ msgid "" msgstr "" "Converte um objeto Python em uma variável C através de uma função " "*converter*. Isso leva dois argumentos: o primeiro é a função, o segundo é o " -"endereço da variável C (de tipo arbitrário), convertendo para :c:expr:" -"`void*`. A função *converter* por sua vez, é chamada da seguinte maneira::" - -#: ../../c-api/arg.rst:318 -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 "" -"onde *object* é o objeto Python a ser convertido e *address* é o argumento :" -"c:expr:`void*` que foi passado para a função ``PyArg_Parse*``. O *status* " -"retornado deve ser ``1`` para uma conversão bem-sucedida e ``0`` se a " -"conversão falhar. Quando a conversão falha, a função *converter* deve " +"endereço da variável C (de tipo arbitrário), convertendo " +"para :c:expr:`void*`. A função *converter* por sua vez, é chamada da " +"seguinte maneira::" + +#: ../../c-api/arg.rst:328 +msgid "status = converter(object, address);" +msgstr "status = converter(object, address);" + +#: ../../c-api/arg.rst:330 +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 "" +"onde *object* é o objeto Python a ser convertido e *address* é o " +"argumento :c:expr:`void*` que foi passado para a função ``PyArg_Parse*``. O " +"*status* retornado deve ser ``1`` para uma conversão bem-sucedida e ``0`` se " +"a conversão falhar. Quando a conversão falha, a função *converter* deve " "levantar uma exceção e deixar o conteúdo de *address* inalterado." -#: ../../c-api/arg.rst:324 +#: ../../c-api/arg.rst:339 msgid "" -"If the *converter* returns ``Py_CLEANUP_SUPPORTED``, it may get called a " -"second time if the argument parsing eventually fails, giving the converter a " -"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." +"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 "" -"Se o *converter* retornar ``Py_CLEANUP_SUPPORTED``, ele poderá ser chamado " -"uma segunda vez se a análise do argumento eventualmente falhar, dando ao " -"conversor a chance de liberar qualquer memória que já havia alocado. Nesta " -"segunda chamada, o parâmetro *object* será ``NULL``; *address* terá o mesmo " -"valor que na chamada original." +"Se o *converter* retornar :c:macro:`!Py_CLEANUP_SUPPORTED`, ele poderá ser " +"chamado uma segunda vez se a análise do argumento eventualmente falhar, " +"dando ao conversor a chance de liberar qualquer memória que já havia " +"alocado. Nesta segunda chamada, o parâmetro *object* será ``NULL``; " +"*address* terá o mesmo valor que na chamada original." -#: ../../c-api/arg.rst:330 -msgid "``Py_CLEANUP_SUPPORTED`` was added." -msgstr "109 ``Py_CLEANUP_SUPPORTED`` foi adicionado." +#: ../../c-api/arg.rst:345 +msgid "" +"Examples of converters: :c:func:`PyUnicode_FSConverter` " +"and :c:func:`PyUnicode_FSDecoder`." +msgstr "" +"Exemplos de conversores: :c:func:`PyUnicode_FSConverter` " +"e :c:func:`PyUnicode_FSDecoder`." -#: ../../c-api/arg.rst:333 +#: ../../c-api/arg.rst:348 +msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." +msgstr ":c:macro:`!Py_CLEANUP_SUPPORTED` foi adicionado." + +#: ../../c-api/arg.rst:351 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [int]" -#: ../../c-api/arg.rst:334 +#: ../../c-api/arg.rst:352 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 " @@ -872,11 +901,11 @@ msgstr "" "Isso aceita qualquer valor válido do Python. Veja :ref:`truth` para obter " "mais informações sobre como o Python testa valores para a verdade." -#: ../../c-api/arg.rst:342 ../../c-api/arg.rst:642 +#: ../../c-api/arg.rst:360 ../../c-api/arg.rst:654 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" -#: ../../c-api/arg.rst:343 +#: ../../c-api/arg.rst:361 msgid "" "The object must be a Python sequence whose length is the number of format " "units in *items*. The C arguments must correspond to the individual format " @@ -887,22 +916,7 @@ msgstr "" "unidades de formato individuais em *items*. As unidades de formato para " "sequências podem ser aninhadas." -#: ../../c-api/arg.rst:347 -msgid "" -"It is possible to pass \"long\" integers (integers whose value exceeds the " -"platform's :c:macro:`LONG_MAX`) however no proper range checking is done --- " -"the most significant bits are silently truncated when the receiving field is " -"too small to receive the value (actually, the semantics are inherited from " -"downcasts in C --- your mileage may vary)." -msgstr "" -"É possível passar inteiros \"long\" (inteiros em que o valor excede a " -"constante da plataforma :c:macro:`LONG_MAX`) contudo nenhuma checagem de " -"intervalo é propriamente feita -- os bits mais significativos são " -"silenciosamente truncados quando o campo de recebimento é muito pequeno para " -"receber o valor (na verdade, a semântica é herdada de downcasts no C -- seu " -"raio de ação pode variar)." - -#: ../../c-api/arg.rst:353 +#: ../../c-api/arg.rst:365 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" @@ -910,11 +924,11 @@ msgstr "" "Alguns outros caracteres possuem significados na string de formatação. Isso " "pode não ocorrer dentro de parênteses aninhados. Eles são:" -#: ../../c-api/arg.rst:356 +#: ../../c-api/arg.rst:368 msgid "``|``" msgstr "``|``" -#: ../../c-api/arg.rst:357 +#: ../../c-api/arg.rst:369 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " @@ -928,11 +942,11 @@ msgstr "" "é especificado, :c:func:`PyArg_ParseTuple` não toca no conteúdo da(s) " "variável(eis) C correspondente(s)." -#: ../../c-api/arg.rst:363 +#: ../../c-api/arg.rst:375 msgid "``$``" msgstr "``$``" -#: ../../c-api/arg.rst:364 +#: ../../c-api/arg.rst:376 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " @@ -945,11 +959,11 @@ msgstr "" "então ``|`` deve sempre ser especificado antes de ``$`` na string de " "formatação." -#: ../../c-api/arg.rst:372 +#: ../../c-api/arg.rst:384 msgid "``:``" msgstr "``:``" -#: ../../c-api/arg.rst:373 +#: ../../c-api/arg.rst:385 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 " @@ -959,21 +973,21 @@ msgstr "" "usada como o nome da função nas mensagens de erro (o \"valor associado\" da " "exceção que :c:func:`PyArg_ParseTuple` levanta)." -#: ../../c-api/arg.rst:377 +#: ../../c-api/arg.rst:389 msgid "``;``" msgstr "``;``" -#: ../../c-api/arg.rst:378 +#: ../../c-api/arg.rst:390 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." +"as the error message *instead* of the default error message. ``:`` and " +"``;`` mutually exclude each other." msgstr "" "A lista de unidades de formatação acaba aqui; a string após o ponto e " "vírgula é usada como a mensagem de erro *ao invés* da mensagem de erro " "padrão. ``:`` e ``;`` se excluem mutuamente." -#: ../../c-api/arg.rst:382 +#: ../../c-api/arg.rst:394 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 " @@ -983,7 +997,7 @@ msgstr "" "chamador são referências *emprestadas*; não libera-as (isto é, não " "decremente a contagem de referências delas)!" -#: ../../c-api/arg.rst:386 +#: ../../c-api/arg.rst:398 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -999,7 +1013,7 @@ msgstr "" "parâmetros são usados como valores de entrada; eles devem concordar com o " "que é especificado para a unidade de formatação correspondente nesse caso." -#: ../../c-api/arg.rst:392 +#: ../../c-api/arg.rst:404 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 " @@ -1016,11 +1030,11 @@ msgstr "" "correspondentes àquela unidade e às unidades de formatação seguintes são " "deixadas intocadas." -#: ../../c-api/arg.rst:401 +#: ../../c-api/arg.rst:413 msgid "API Functions" msgstr "Funções da API" -#: ../../c-api/arg.rst:405 +#: ../../c-api/arg.rst:417 msgid "" "Parse the parameters of a function that takes only positional parameters " "into local variables. Returns true on success; on failure, it returns false " @@ -1030,7 +1044,7 @@ msgstr "" "em variáveis locais. Retorna verdadeiro em caso de sucesso; em caso de " "falha, retorna falso e levanta a exceção apropriada." -#: ../../c-api/arg.rst:412 +#: ../../c-api/arg.rst:424 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." @@ -1038,13 +1052,14 @@ msgstr "" "Idêntico a :c:func:`PyArg_ParseTuple`, exceto que aceita uma va_list ao " "invés de um número variável de argumentos." -#: ../../c-api/arg.rst:418 +#: ../../c-api/arg.rst:430 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. Empty names denote :ref:" -"`positional-only parameters `. Returns true on " -"success; on failure, it returns false and raises the appropriate exception." +"terminated array of keyword parameter names. Empty names " +"denote :ref:`positional-only parameters `. " +"Returns true on success; on failure, it returns false and raises the " +"appropriate exception." msgstr "" "Analisa os parâmetros de uma função que recebe ambos parâmetros posicionais " "e de palavra reservada em variáveis locais. O argumento *keywords* é um " @@ -1053,7 +1068,7 @@ msgstr "" "only_parameter>`. Retorna verdadeiro em caso de sucesso; em caso de falha, " "retorna falso e levanta a exceção apropriada." -#: ../../c-api/arg.rst:425 +#: ../../c-api/arg.rst:437 msgid "" "Added support for :ref:`positional-only parameters `." @@ -1061,7 +1076,7 @@ msgstr "" "Adicionado suporte para :ref:`positional-only parameters `." -#: ../../c-api/arg.rst:432 +#: ../../c-api/arg.rst:444 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " "va_list rather than a variable number of arguments." @@ -1069,7 +1084,7 @@ msgstr "" "Idêntico a :c:func:`PyArg_ParseTupleAndKeywords`, exceto que aceita uma " "va_list ao invés de um número variável de argumentos." -#: ../../c-api/arg.rst:438 +#: ../../c-api/arg.rst:450 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 " @@ -1079,7 +1094,7 @@ msgstr "" "strings. Isso só é necessário se :c:func:`PyArg_ParseTupleAndKeywords` não é " "usado, já que o último já faz essa checagem." -#: ../../c-api/arg.rst:448 +#: ../../c-api/arg.rst:460 msgid "" "Function used to deconstruct the argument lists of \"old-style\" functions " "--- these are functions which use the :const:`METH_OLDARGS` parameter " @@ -1090,14 +1105,14 @@ msgid "" "continue to be used for that purpose." msgstr "" "Função usada para desconstruir as listas de argumento de funções \"old-" -"style\" --- estas são funções que usam o método de análise de parâmetro :" -"const:`METH_OLDARGS`, que foi removido no Python 3. Isso não é recomendado " -"para uso de análise de parâmetro em código novo, e a maior parte do código " -"no interpretador padrão foi modificada para não usar mais isso para esse " -"propósito. Ela continua um modo conveniente de decompor outras tuplas, " -"contudo, e pode continuar a ser usada para esse propósito." +"style\" --- estas são funções que usam o método de análise de " +"parâmetro :const:`METH_OLDARGS`, que foi removido no Python 3. Isso não é " +"recomendado para uso de análise de parâmetro em código novo, e a maior parte " +"do código no interpretador padrão foi modificada para não usar mais isso " +"para esse propósito. Ela continua um modo conveniente de decompor outras " +"tuplas, contudo, e pode continuar a ser usada para esse propósito." -#: ../../c-api/arg.rst:459 +#: ../../c-api/arg.rst:471 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 " @@ -1116,21 +1131,21 @@ msgid "" msgstr "" "Uma forma mais simples de recuperação de parâmetro que não usa uma string de " "formato para especificar os tipos de argumentos. Funções que usam este " -"método para recuperar seus parâmetros devem ser declaradas como :c:macro:" -"`METH_VARARGS` em tabelas de função ou método. A tupla contendo os " -"parâmetros reais deve ser passada como *args*; deve realmente ser uma tupla. " -"O comprimento da tupla deve ser de pelo menos *min* e não mais do que *max*; " -"*min* e *max* podem ser iguais. Argumentos adicionais devem ser passados " -"para a função, cada um dos quais deve ser um ponteiro para uma variável :c:" -"expr:`PyObject*`; eles serão preenchidos com os valores de *args*; eles " -"conterão :term:`referências emprestadas `. As variáveis " -"que correspondem a parâmetros opcionais não fornecidos por *args* não serão " -"preenchidas; estes devem ser inicializados pelo chamador. Esta função " -"retorna verdadeiro em caso de sucesso e falso se *args* não for uma tupla ou " -"contiver o número incorreto de elementos; uma exceção será definida se " -"houver uma falha." - -#: ../../c-api/arg.rst:474 +"método para recuperar seus parâmetros devem ser declaradas " +"como :c:macro:`METH_VARARGS` em tabelas de função ou método. A tupla " +"contendo os parâmetros reais deve ser passada como *args*; deve realmente " +"ser uma tupla. O comprimento da tupla deve ser de pelo menos *min* e não " +"mais do que *max*; *min* e *max* podem ser iguais. Argumentos adicionais " +"devem ser passados para a função, cada um dos quais deve ser um ponteiro " +"para uma variável :c:expr:`PyObject*`; eles serão preenchidos com os valores " +"de *args*; eles conterão :term:`referências emprestadas `. As variáveis que correspondem a parâmetros opcionais não " +"fornecidos por *args* não serão preenchidas; estes devem ser inicializados " +"pelo chamador. Esta função retorna verdadeiro em caso de sucesso e falso se " +"*args* não for uma tupla ou contiver o número incorreto de elementos; uma " +"exceção será definida se houver uma falha." + +#: ../../c-api/arg.rst:486 msgid "" "This is an example of the use of this function, taken from the sources for " "the :mod:`!_weakref` helper module for weak references::" @@ -1138,7 +1153,35 @@ msgstr "" "Este é um exemplo do uso dessa função, tirado das fontes do módulo auxiliar " "para referências fracas :mod:`!_weakref`::" -#: ../../c-api/arg.rst:490 +#: ../../c-api/arg.rst:489 +msgid "" +"static PyObject *\n" +"weakref_ref(PyObject *self, PyObject *args)\n" +"{\n" +" PyObject *object;\n" +" PyObject *callback = NULL;\n" +" PyObject *result = NULL;\n" +"\n" +" if (PyArg_UnpackTuple(args, \"ref\", 1, 2, &object, &callback)) {\n" +" result = PyWeakref_NewRef(object, callback);\n" +" }\n" +" return result;\n" +"}" +msgstr "" +"static PyObject *\n" +"weakref_ref(PyObject *self, PyObject *args)\n" +"{\n" +" PyObject *object;\n" +" PyObject *callback = NULL;\n" +" PyObject *result = NULL;\n" +"\n" +" if (PyArg_UnpackTuple(args, \"ref\", 1, 2, &object, &callback)) {\n" +" result = PyWeakref_NewRef(object, callback);\n" +" }\n" +" return result;\n" +"}" + +#: ../../c-api/arg.rst:502 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" @@ -1146,11 +1189,15 @@ msgstr "" "A chamada à :c:func:`PyArg_UnpackTuple` neste exemplo é inteiramente " "equivalente à chamada para :c:func:`PyArg_ParseTuple`::" -#: ../../c-api/arg.rst:498 +#: ../../c-api/arg.rst:505 +msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" +msgstr "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" + +#: ../../c-api/arg.rst:510 msgid "Building values" msgstr "Construindo valores" -#: ../../c-api/arg.rst:502 +#: ../../c-api/arg.rst:514 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 " @@ -1162,7 +1209,7 @@ msgstr "" "Retorna o valor ou ``NULL`` em caso de erro; uma exceção será levantada se " "``NULL`` for retornado." -#: ../../c-api/arg.rst:507 +#: ../../c-api/arg.rst:519 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 " @@ -1178,26 +1225,26 @@ msgstr "" "retornar uma tupla de tamanho 0 ou um, use parênteses na string de " "formatação." -#: ../../c-api/arg.rst:513 +#: ../../c-api/arg.rst:525 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." +"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 "" "Quando buffers de memória são passados como parâmetros para fornecer dados " "para construir objetos, como nos formatos ``s`` e ``s#``, os dados " "necessários são copiados. Buffers fornecidos pelo chamador nunca são " "referenciados pelos objetos criados por :c:func:`Py_BuildValue`. Em outras " "palavras, se o seu código invoca :c:func:`malloc` e passa a memória alocada " -"para :c:func:`Py_BuildValue`, seu código é responsável por chamar :c:func:" -"`free` para aquela memória uma vez que :c:func:`Py_BuildValue` tiver " -"retornado." +"para :c:func:`Py_BuildValue`, seu código é responsável por " +"chamar :c:func:`free` para aquela memória uma vez " +"que :c:func:`Py_BuildValue` tiver retornado." -#: ../../c-api/arg.rst:521 +#: ../../c-api/arg.rst:533 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 " @@ -1209,7 +1256,7 @@ msgstr "" "de formatação irá retornar; e a entrada em colchetes [quadrado] é o tipo " "do(s) valor(es) C a ser(em) passado(s)." -#: ../../c-api/arg.rst:525 +#: ../../c-api/arg.rst:537 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 " @@ -1220,11 +1267,11 @@ msgstr "" "pode ser usado para tornar strings de formatação longas um pouco mais " "legíveis." -#: ../../c-api/arg.rst:529 +#: ../../c-api/arg.rst:541 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "``s`` (:class:`str` ou ``None``) [const char \\*]" -#: ../../c-api/arg.rst:530 +#: ../../c-api/arg.rst:542 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." @@ -1233,13 +1280,13 @@ msgstr "" "usando codificação ``'utf-8'``. Se o ponteiro da string C é ``NULL``, " "``None`` é usado." -#: ../../c-api/arg.rst:533 +#: ../../c-api/arg.rst:545 msgid "" "``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``s#`` (:class:`str` ou ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:534 +#: ../../c-api/arg.rst:546 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 " @@ -1249,11 +1296,11 @@ msgstr "" "usando a codificação ``'utf-8'``. Se o ponteiro da string C é ``NULL``, o " "comprimento é ignorado e ``None`` é retornado." -#: ../../c-api/arg.rst:538 +#: ../../c-api/arg.rst:550 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "``y`` (:class:`bytes`) [const char \\*]" -#: ../../c-api/arg.rst:539 +#: ../../c-api/arg.rst:551 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string " "pointer is ``NULL``, ``None`` is returned." @@ -1261,11 +1308,11 @@ msgstr "" "Isso converte uma string C para um objeto Python :class:`bytes`. Se o " "ponteiro da string C é ``NULL``, ``None`` é retornado." -#: ../../c-api/arg.rst:542 +#: ../../c-api/arg.rst:554 msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:543 +#: ../../c-api/arg.rst:555 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is ``NULL``, ``None`` is returned." @@ -1273,25 +1320,25 @@ msgstr "" "Isso converte uma string C e seu comprimento para um objeto Python. Se o " "ponteiro da string C é ``NULL``, ``None`` é retornado." -#: ../../c-api/arg.rst:547 ../../c-api/arg.rst:563 +#: ../../c-api/arg.rst:559 ../../c-api/arg.rst:575 msgid "Same as ``s``." msgstr "O mesmo de ``s``." -#: ../../c-api/arg.rst:549 +#: ../../c-api/arg.rst:561 msgid "" "``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``z#`` (:class:`str` ou ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:550 ../../c-api/arg.rst:566 +#: ../../c-api/arg.rst:562 ../../c-api/arg.rst:578 msgid "Same as ``s#``." msgstr "O mesmo de ``s#``." -#: ../../c-api/arg.rst:552 +#: ../../c-api/arg.rst:564 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "``u`` (:class:`str`) [const wchar_t \\*]" -#: ../../c-api/arg.rst:553 +#: ../../c-api/arg.rst:565 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 " @@ -1301,11 +1348,11 @@ msgstr "" "(UTF-16 ou UCS-4) para um objeto Python Unicode. Se o ponteiro do buffer " "Unicode é ``NULL``, ``None`` é retornado." -#: ../../c-api/arg.rst:557 +#: ../../c-api/arg.rst:569 msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:558 +#: ../../c-api/arg.rst:570 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 " @@ -1315,141 +1362,141 @@ msgstr "" "um objeto Python Unicode. Se o ponteiro do buffer Unicode é ``NULL``, o " "comprimento é ignorado e ``None`` é retornado." -#: ../../c-api/arg.rst:562 +#: ../../c-api/arg.rst:574 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "``U`` (:class:`str` ou ``None``) [const char \\*]" -#: ../../c-api/arg.rst:565 +#: ../../c-api/arg.rst:577 msgid "" "``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``U#`` (:class:`str` ou ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../../c-api/arg.rst:569 +#: ../../c-api/arg.rst:581 msgid "Convert a plain C :c:expr:`int` to a Python integer object." msgstr "Converte um simples :c:expr:`int` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:571 +#: ../../c-api/arg.rst:583 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [char]" -#: ../../c-api/arg.rst:572 +#: ../../c-api/arg.rst:584 msgid "Convert a plain C :c:expr:`char` to a Python integer object." msgstr "" "Converte um simples :c:expr:`char` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:575 +#: ../../c-api/arg.rst:587 msgid "Convert a plain C :c:expr:`short int` to a Python integer object." msgstr "" "Converte um simples :c:expr:`short int` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:578 +#: ../../c-api/arg.rst:590 msgid "Convert a C :c:expr:`long int` to a Python integer object." msgstr "Converte um :c:expr:`long int` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:581 +#: ../../c-api/arg.rst:593 msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." msgstr "" "Converte um :c:expr:`unsigned char` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:584 +#: ../../c-api/arg.rst:596 msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." msgstr "" "Converte um :c:expr:`unsigned short int` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:587 +#: ../../c-api/arg.rst:599 msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." msgstr "" "Converte um :c:expr:`unsigned int` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:590 +#: ../../c-api/arg.rst:602 msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." msgstr "" "Converte um :c:expr:`unsigned long` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:593 +#: ../../c-api/arg.rst:605 msgid "Convert a C :c:expr:`long long` to a Python integer object." msgstr "Converte um :c:expr:`long long` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:596 +#: ../../c-api/arg.rst:608 msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." msgstr "" "Converte um :c:expr:`unsigned long long` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:599 +#: ../../c-api/arg.rst:611 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "Converte um :c:type:`Py_ssize_t` do C em um objeto inteiro do Python." -#: ../../c-api/arg.rst:601 +#: ../../c-api/arg.rst:613 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "``c`` (:class:`bytes` de comprimento 1) [char]" -#: ../../c-api/arg.rst:602 +#: ../../c-api/arg.rst:614 msgid "" "Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" -"Converte um :c:expr:`int` representando um byte do C em um objeto :class:" -"`bytes` de comprimento 1 do Python." +"Converte um :c:expr:`int` representando um byte do C em um " +"objeto :class:`bytes` de comprimento 1 do Python." -#: ../../c-api/arg.rst:606 +#: ../../c-api/arg.rst:618 msgid "" "Convert a C :c:expr:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" -"Converte um :c:expr:`int` representando um caractere do C em um objeto :" -"class:`str` de comprimento 1 do Python." +"Converte um :c:expr:`int` representando um caractere do C em um " +"objeto :class:`str` de comprimento 1 do Python." -#: ../../c-api/arg.rst:610 -msgid "Convert a C :c:expr:`double` to a Python floating point number." +#: ../../c-api/arg.rst:622 +msgid "Convert a C :c:expr:`double` to a Python floating-point number." msgstr "" "Converte um :c:expr:`double` do C em um número ponto flutuante do Python." -#: ../../c-api/arg.rst:613 -msgid "Convert a C :c:expr:`float` to a Python floating point number." +#: ../../c-api/arg.rst:625 +msgid "Convert a C :c:expr:`float` to a Python floating-point number." msgstr "" "Converte um :c:expr:`float` do C em um número ponto flutuante do Python." -#: ../../c-api/arg.rst:615 +#: ../../c-api/arg.rst:627 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [Py_complex \\*]" -#: ../../c-api/arg.rst:616 +#: ../../c-api/arg.rst:628 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" "Converte uma estrutura :c:type:`Py_complex` do C em um número complexo do " "Python." -#: ../../c-api/arg.rst:619 +#: ../../c-api/arg.rst:631 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." +"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 "" "Passa um objeto Python intocado, mas cria uma nova :term:`referência forte` " "a ele (isto é, sua contagem de referências é incrementada por um). Se o " -"objeto passado é um ponteiro ``NULL``, assume-se que isso foi causado porque " -"a chamada que produziu o argumento encontrou um erro e definiu uma exceção. " -"Portanto, :c:func:`Py_BuildValue` irá retornar ``NULL`` mas não irá levantar " -"uma exceção. Se nenhuma exceção foi levantada ainda, :exc:`SystemError` é " -"definida." +"objeto passado é um ponteiro ``NULL``, presume-se que isso foi causado " +"porque a chamada que produziu o argumento encontrou um erro e definiu uma " +"exceção. Portanto, :c:func:`Py_BuildValue` irá retornar ``NULL`` mas não irá " +"levantar uma exceção. Se nenhuma exceção foi levantada " +"ainda, :exc:`SystemError` é definida." -#: ../../c-api/arg.rst:628 +#: ../../c-api/arg.rst:640 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (objeto) [PyObject \\*]" -#: ../../c-api/arg.rst:629 +#: ../../c-api/arg.rst:641 msgid "Same as ``O``." msgstr "O mesmo que ``O``." -#: ../../c-api/arg.rst:631 +#: ../../c-api/arg.rst:643 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (objeto) [PyObject \\*]" -#: ../../c-api/arg.rst:632 +#: ../../c-api/arg.rst:644 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 " @@ -1459,19 +1506,23 @@ msgstr "" "Útil quando o objeto é criado por uma chamada a um construtor de objeto na " "lista de argumento." -#: ../../c-api/arg.rst:637 +#: ../../c-api/arg.rst:648 +msgid "``O&`` (object) [*converter*, *anything*]" +msgstr "``O&`` (objeto) [*converter*, *anything*]" + +#: ../../c-api/arg.rst:649 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." +"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 "" "Converte *anything* para um objeto Python através de uma função *converter*. " -"A função é chamada com *anything* (que deve ser compatível com o :c:expr:" -"`void*`) como argumento e deve retornar um \"novo\" objeto Python, ou " -"``NULL`` se um erro ocorreu." +"A função é chamada com *anything* (que deve ser compatível com " +"o :c:expr:`void*`) como argumento e deve retornar um \"novo\" objeto Python, " +"ou ``NULL`` se um erro ocorreu." -#: ../../c-api/arg.rst:643 +#: ../../c-api/arg.rst:655 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." @@ -1479,11 +1530,11 @@ msgstr "" "Converte uma sequência de valores C para uma tupla Python com o mesmo número " "de itens." -#: ../../c-api/arg.rst:645 +#: ../../c-api/arg.rst:657 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "``[items]`` (:class:`list`) [*matching-items*]" -#: ../../c-api/arg.rst:646 +#: ../../c-api/arg.rst:658 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." @@ -1491,11 +1542,11 @@ msgstr "" "Converte uma sequência de valores C para uma lista Python com o mesmo número " "de itens." -#: ../../c-api/arg.rst:648 +#: ../../c-api/arg.rst:660 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" -#: ../../c-api/arg.rst:649 +#: ../../c-api/arg.rst:661 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 " @@ -1505,7 +1556,7 @@ msgstr "" "valores consecutivos do C adiciona um item ao dicionário, servindo como " "chave e valor, respectivamente." -#: ../../c-api/arg.rst:653 +#: ../../c-api/arg.rst:665 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." @@ -1513,7 +1564,7 @@ msgstr "" "Se existir um erro na string de formatação, a exceção :exc:`SystemError` é " "definida e ``NULL`` é retornado." -#: ../../c-api/arg.rst:658 +#: ../../c-api/arg.rst:670 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." diff --git a/c-api/bool.po b/c-api/bool.po index ae9c791e8..52e9c1883 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Julio Biason, 2023 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-04 01:27+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/buffer.po b/c-api/buffer.po index 4a9c0da73..1bf9180b6 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -1,58 +1,46 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# (Douglas da Silva) , 2021 -# Julio Gadioli Soares , 2021 -# felipe caridade fernandes , 2021 -# Danielle Farias , 2021 -# Julia Rizza , 2021 -# Nícolas Prado , 2021 -# Leandro Braga , 2021 -# Ana Carolina Dias, 2022 -# Marco Rougeth , 2023 -# Julio Biason, 2023 -# Victor D. G., 2023 -# Adorilson Bezerra , 2024 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/buffer.rst:11 msgid "Buffer Protocol" -msgstr "Protocolo de Buffer" +msgstr "Protocolo de buffer" #: ../../c-api/buffer.rst:18 msgid "" "Certain objects available in Python wrap access to an underlying memory " -"array or *buffer*. Such objects include the built-in :class:`bytes` and :" -"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." +"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 "" "Certos objetos disponíveis no Python envolvem o acesso a um vetor ou " -"*buffer* de memória subjacente. Esses objetos incluem as :class:`bytes` e :" -"class:`bytearray` embutidas, e alguns tipos de extensão como :class:`array." -"array`. As bibliotecas de terceiros podem definir seus próprios tipos para " -"fins especiais, como processamento de imagem ou análise numérica." +"*buffer* de memória subjacente. Esses objetos incluem as " +"classes :class:`bytes` e :class:`bytearray` embutidas, e alguns tipos de " +"extensão como :class:`array.array`. As bibliotecas de terceiros podem " +"definir seus próprios tipos para fins especiais, como processamento de " +"imagem ou análise numérica." #: ../../c-api/buffer.rst:24 msgid "" @@ -68,8 +56,8 @@ msgstr "" #: ../../c-api/buffer.rst:29 msgid "" -"Python provides such a facility at the C level in the form of the :ref:" -"`buffer protocol `. This protocol has two sides:" +"Python provides such a facility at the C level in the form of " +"the :ref:`buffer protocol `. This protocol has two sides:" msgstr "" "Python fornece essa facilidade no nível C sob a forma de :ref:`protocolo de " "buffer `. Este protocolo tem dois lados:" @@ -106,24 +94,24 @@ msgstr "" #: ../../c-api/buffer.rst:45 msgid "" -"An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase." -"write` method of file objects: any object that can export a series of bytes " -"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 "" -"Um exemplo de interface de um consumidor de buffer é o método :meth:`~io." -"BufferedIOBase.write` de objetos arquivo: qualquer objeto que possa exportar " -"uma série de bytes por meio da interface de buffer pode ser gravado em um " -"arquivo. Enquanto o :meth:`!write` precisa apenas de acesso de somente " -"leitura ao conteúdo interno do objeto passado, outros métodos, como :meth:" -"`~io.BufferedIOBase.readinto`, precisam de acesso de somente escrita ao " -"conteúdo interno. A interface de buffer permite que o objetos possam " -"permitir ou rejeitar a exportação para buffers de leitura e escrita ou " -"somente leitura." +"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 "" +"Um exemplo de interface de um consumidor de buffer é o " +"método :meth:`~io.BufferedIOBase.write` de objetos arquivo: qualquer objeto " +"que possa exportar uma série de bytes por meio da interface de buffer pode " +"ser gravado em um arquivo. Enquanto o :meth:`!write` precisa apenas de " +"acesso somente de leitura ao conteúdo interno do objeto passado, outros " +"métodos, como :meth:`~io.BufferedIOBase.readinto`, precisam de acesso " +"somente de escrita ao conteúdo interno. A interface de buffer permite que os " +"objetos possam permitir ou rejeitar a exportação para buffers de leitura e " +"escrita ou somente leitura." #: ../../c-api/buffer.rst:53 msgid "" @@ -135,15 +123,15 @@ msgstr "" #: ../../c-api/buffer.rst:56 msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" -msgstr "chamada de :c:func:`PyObject_GetBuffer` com os parâmetros certos;" +msgstr "chamar :c:func:`PyObject_GetBuffer` com os parâmetros certos;" #: ../../c-api/buffer.rst:58 msgid "" "call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " "``y*``, ``w*`` or ``s*`` :ref:`format codes `." msgstr "" -"chamada de :c:func:`PyArg_ParseTuple` (ou um dos seus irmãos) com um dos :" -"ref:`códigos de formatação ` ``y*``, ``w*`` ou ``s*``." +"chamar :c:func:`PyArg_ParseTuple` (ou um dos seus irmãos) com um " +"dos :ref:`códigos de formatação ` ``y*``, ``w*`` ou ``s*``." #: ../../c-api/buffer.rst:61 msgid "" @@ -152,7 +140,7 @@ msgid "" "resource leaks." msgstr "" "Em ambos os casos, :c:func:`PyBuffer_Release` deve ser chamado quando o " -"buffer não é mais necessário. A falta de tal pode levar a várias questões, " +"buffer não é mais necessário. A falta de tal pode levar a vários problemas, " "tais como vazamentos de recursos." #: ../../c-api/buffer.rst:69 @@ -197,8 +185,8 @@ msgstr "" #: ../../c-api/buffer.rst:86 msgid "" "For short instructions how to write an exporting object, see :ref:`Buffer " -"Object Structures `. For obtaining a buffer, see :c:func:" -"`PyObject_GetBuffer`." +"Object Structures `. For obtaining a buffer, " +"see :c:func:`PyObject_GetBuffer`." msgstr "" "Para obter instruções curtas sobre como escrever um objeto exportador, " "consulte :ref:`Buffer Object Structures `. Para obter um " @@ -213,8 +201,9 @@ msgid "" msgstr "" "Um ponteiro para o início da estrutura lógica descrita pelos campos do " "buffer. Este pode ser qualquer local dentro do bloco de memória física " -"subjacente do exportador. Por exemplo, com negativo :c:member:`~Py_buffer." -"strides` o valor pode apontar para o final do bloco de memória." +"subjacente do exportador. Por exemplo, com " +"negativo :c:member:`~Py_buffer.strides` o valor pode apontar para o final do " +"bloco de memória." #: ../../c-api/buffer.rst:99 msgid "" @@ -233,19 +222,19 @@ msgid "" msgstr "" "Uma nova referência ao objeto sendo exporta. A referência pertence ao " "consumidor e é automaticamente liberada (por exemplo, a contagem de " -"referências é decrementada) e é atribuída para ``NULL`` por :c:func:" -"`PyBuffer_Release`. O campo é equivalmente ao valor de retorno de qualquer " -"função do padrão C-API." +"referências é decrementada) e é atribuída para ``NULL`` " +"por :c:func:`PyBuffer_Release`. O campo equivale ao valor de retorno de " +"qualquer função padrão da API C." #: ../../c-api/buffer.rst:111 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." +"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 "" -"Como um caso especial, para buffers *temporários* que são encapsulados por :" -"c:func:`PyMemoryView_FromBuffer` ou :c:func:`PyBuffer_FillInfo` esse campo é " -"``NULL``. Em geral, objetos exportadores NÃO DEVEM usar esse esquema." +"Como um caso especial, para buffers *temporários* que são encapsulados " +"por :c:func:`PyMemoryView_FromBuffer` ou :c:func:`PyBuffer_FillInfo` esse " +"campo é ``NULL``. Em geral, objetos exportadores NÃO DEVEM usar esse esquema." #: ../../c-api/buffer.rst:118 msgid "" @@ -263,13 +252,13 @@ msgstr "" 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`." +"most cases such a request will be :c:macro:`PyBUF_SIMPLE` " +"or :c:macro:`PyBUF_WRITABLE`." msgstr "" "Acessando ``((char *)buf)[0] up to ((char *)buf)[len-1]`` só é válido se o " "buffer tiver sido obtido por uma solicitação que garanta a contiguidade. Na " -"maioria dos casos, esse pedido será :c:macro:`PyBUF_SIMPLE` ou :c:macro:" -"`PyBUF_WRITABLE`." +"maioria dos casos, esse pedido será :c:macro:`PyBUF_SIMPLE` " +"ou :c:macro:`PyBUF_WRITABLE`." #: ../../c-api/buffer.rst:129 msgid "" @@ -281,54 +270,57 @@ msgstr "" #: ../../c-api/buffer.rst:134 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." +"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 "" -"O tamanho do item em bytes de um único elemento. O mesmo que o valor de :" -"func:`struct.calcsize` chamado em valores não ``NULL`` de :c:member:" -"`~Py_buffer.format`." +"O tamanho do item em bytes de um único elemento. O mesmo que o valor " +"de :func:`struct.calcsize` chamado em valores não ``NULL`` " +"de :c:member:`~Py_buffer.format`." #: ../../c-api/buffer.rst:137 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." +"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 "" -"Exceção importante: Se um consumidor requisita um buffer sem sinalizador :c:" -"macro:`PyBUF_FORMAT`, :c:member:`~Py_buffer.format` será definido como " -"``NULL``, mas :c:member:`~Py_buffer.itemsize` ainda terá seu valor para o " -"formato original." +"Exceção importante: Se um consumidor requisita um buffer sem " +"sinalizador :c:macro:`PyBUF_FORMAT`, :c:member:`~Py_buffer.format` será " +"definido como ``NULL``, mas :c:member:`~Py_buffer.itemsize` ainda terá seu " +"valor para o formato original." #: ../../c-api/buffer.rst:142 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." +"itemsize == len`` still holds and the consumer can " +"use :c:member:`~Py_buffer.itemsize` to navigate the buffer." msgstr "" "Se :c:member:`~Py_buffer.shape` está presente, a igualdade ``product(shape) " -"* itemsize == len`` ainda é válida e o usuário pode usar :c:member:" -"`~Py_buffer.itemsize` para navegar o buffer." +"* itemsize == len`` ainda é válida e o usuário pode " +"usar :c:member:`~Py_buffer.itemsize` para navegar o buffer." #: ../../c-api/buffer.rst:146 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``." +"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 "" -"Se :c:member:`~Py_buffer.shape` é ``NULL`` como resultado de uma :c:macro:" -"`PyBUF_SIMPLE` ou uma requisição :c:macro:`PyBUF_WRITABLE`, o consumidor " -"deve ignorar :c:member:`~Py_buffer.itemsize` e assumir ``itemsize == 1``." +"Se :c:member:`~Py_buffer.shape` é ``NULL`` como resultado de " +"uma :c:macro:`PyBUF_SIMPLE` ou uma requisição :c:macro:`PyBUF_WRITABLE`, o " +"consumidor deve ignorar :c:member:`~Py_buffer.itemsize` e presumir " +"``itemsize == 1``." #: ../../c-api/buffer.rst:152 msgid "" -"A *NUL* terminated string in :mod:`struct` module style syntax describing " +"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 "" -"Uma string terminada por *NUL* no estilo de sintaxe de módulo :mod:`struct` " +"Uma string terminada por *NULL* no estilo de sintaxe de módulo :mod:`struct` " "descrevendo os conteúdos de um único item. Se isso é ``NULL``, ``\"B\"`` " -"(unsigned bytes) é assumido." +"(unsigned bytes) é presumido." #: ../../c-api/buffer.rst:156 msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." @@ -338,27 +330,29 @@ msgstr "Este campo é controlado pelo sinalizador :c:macro:`PyBUF_FORMAT`." 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`." +"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 "" "O número de dimensões de memória representado como um array n-dimensional. " "Se for ``0``, :c:member:`~Py_buffer.buf` aponta para um único elemento " -"representando um escalar. Neste caso, :c:member:`~Py_buffer.shape`, :c:" -"member:`~Py_buffer.strides` e :c:member:`~Py_buffer.suboffsets` DEVEM ser " -"``NULL``. O número máximo de dimensões é dado por :c:macro:`PyBUF_MAX_NDIM`." +"representando um escalar. Neste " +"caso, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer.strides` " +"e :c:member:`~Py_buffer.suboffsets` DEVEM ser ``NULL``. O número máximo de " +"dimensões é dado por :c:macro:`PyBUF_MAX_NDIM`." #: ../../c-api/buffer.rst:168 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`." +"``shape[0] * ... * shape[ndim-1] * itemsize`` MUST be equal " +"to :c:member:`~Py_buffer.len`." msgstr "" -"Uma matriz de :c:type:`Py_ssize_t` do comprimento :c:member:`~Py_buffer." -"ndim` indicando a forma da memória como uma matriz n-dimensional. Observe " -"que a forma ``shape[0] * ... * shape[ndim-1] * itemsize`` DEVE ser igual a :" -"c:member:`~Py_buffer.len`." +"Uma matriz de :c:type:`Py_ssize_t` do " +"comprimento :c:member:`~Py_buffer.ndim` indicando a forma da memória como " +"uma matriz n-dimensional. Observe que a forma ``shape[0] * ... * " +"shape[ndim-1] * itemsize`` DEVE ser igual a :c:member:`~Py_buffer.len`." #: ../../c-api/buffer.rst:173 msgid "" @@ -404,12 +398,12 @@ msgid "" "pointer after de-referencing. A suboffset value that is negative indicates " "that no de-referencing should occur (striding in a contiguous memory block)." msgstr "" -"Uma matriz de :c:type:`Py_ssize_t` de comprimento :c:member:`~Py_buffer." -"ndim`. Se ``suboffsets[n] >= 0``, os valores armazenados ao longo da n-ésima " -"dimensão são ponteiros e o valor suboffset determina quantos bytes para " -"adicionar a cada ponteiro após desreferenciar. Um valor de suboffset que é " -"negativo indica que não deve ocorrer desreferenciação (caminhando em um " -"bloco de memória contíguo)." +"Uma matriz de :c:type:`Py_ssize_t` de " +"comprimento :c:member:`~Py_buffer.ndim`. Se ``suboffsets[n] >= 0``, os " +"valores armazenados ao longo da n-ésima dimensão são ponteiros e o valor " +"suboffset determina quantos bytes para adicionar a cada ponteiro após " +"desreferenciar. Um valor de suboffset que é negativo indica que não deve " +"ocorrer desreferenciação (caminhando em um bloco de memória contíguo)." #: ../../c-api/buffer.rst:200 msgid "" @@ -457,8 +451,8 @@ msgid "" "handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions. Currently set to 64." msgstr "" "O número máximo de dimensões que a memória representa. Exportadores DEVEM " -"respeitar esse limite, consumidores de buffers multi-dimensionais DEVEM ser " -"capazes de liader com até :c:macro:`!PyBUF_MAX_NDIM` dimensões. Atualmente " +"respeitar esse limite, consumidores de buffers multidimensionais DEVEM ser " +"capazes de lidar com até :c:macro:`!PyBUF_MAX_NDIM` dimensões. Atualmente " "definido como 64." #: ../../c-api/buffer.rst:231 @@ -492,30 +486,31 @@ msgstr "campos independentes do pedido" #: ../../c-api/buffer.rst:243 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`." +"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 "" "Os seguintes campos não são influenciados por *flags* e devem sempre ser " -"preenchidos com os valores corretos: :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`." +"preenchidos com os valores " +"corretos: :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`." -#: ../../c-api/buffer.rst:249 +#: ../../c-api/buffer.rst:248 msgid "readonly, format" msgstr "apenas em formato" -#: ../../c-api/buffer.rst:253 +#: ../../c-api/buffer.rst:252 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." +"MUST be consistent for all consumers. For example, :c:expr:`PyBUF_SIMPLE | " +"PyBUF_WRITABLE` can be used to request a simple writable buffer." msgstr "" -"Controla o campo :c:member:`~Py_buffer.readonly`. Se configurado, o " -"exportador DEVE fornecer um buffer gravável ou então reportar falha. Caso " -"contrário, o exportador pode fornecer um buffer de somente leitura ou " -"gravável, mas a escolha DEVE ser consistente para todos os consumidores." +"Controla o campo :c:member:`~Py_buffer.readonly` . Se configurado, o " +"exportador DEVE fornecer um buffer gravável ou então relatar falha. Do " +"contrário, o exportador PODE fornecer um buffer somente leitura ou um buffer " +"gravável , mas a escolha DEVE ser consistente para todos os consumidores. " +"Por exemplo, :c:expr:`PyBUF_SIMPLE | PyBUF_WRITABLE` pode ser usado para " +"requisitar um buffer simples gravável." #: ../../c-api/buffer.rst:260 msgid "" @@ -529,29 +524,31 @@ msgstr "" #: ../../c-api/buffer.rst:264 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." +"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:macro:`PyBUF_WRITABLE` pode ser \\|'d para qualquer um dos sinalizadores " -"na próxima seção. Uma vez que :c:macro:`PyBUF_WRITABLE` é definido como 0, :" -"c:macro:`PyBUF_WRITABLE` pode ser usado como uma bandeira autônoma para " +":c:macro:`PyBUF_WRITABLE` pode ser \\|'d para qualquer um dos sinalizadores " +"na próxima seção. Uma vez que :c:macro:`PyBUF_SIMPLE` é definido como " +"0, :c:macro:`PyBUF_WRITABLE` pode ser usado como uma bandeira autônoma para " "solicitar um buffer simples gravável." #: ../../c-api/buffer.rst:268 msgid "" -":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" -"`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." +":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:macro:`PyBUF_FORMAT` pode ser \\|'d para qualquer um dos sinalizadores, " -"exceto :c:macro:`PyBUF_SIMPLE`. O último já implica o formato ``B`` (bytes " -"não assinados)." +":c:macro:`PyBUF_FORMAT` deve ser \\|'d para qualquer um dos sinalizadores " +"exceto :c:macro:`PyBUF_SIMPLE`, uma vez que este já indica que o formato " +"``B`` (unsigned bytes). :c:macro:`!PyBUF_FORMAT` não pode ser utilizado " +"sozinho." -#: ../../c-api/buffer.rst:273 +#: ../../c-api/buffer.rst:274 msgid "shape, strides, suboffsets" msgstr "forma, avanços, suboffsets" -#: ../../c-api/buffer.rst:275 +#: ../../c-api/buffer.rst:276 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 " @@ -561,57 +558,57 @@ msgstr "" "ordem decrescente de complexidade. Observe que cada bandeira contém todos os " "bits das bandeiras abaixo." -#: ../../c-api/buffer.rst:282 ../../c-api/buffer.rst:306 -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:283 ../../c-api/buffer.rst:307 +#: ../../c-api/buffer.rst:332 msgid "Request" msgstr "Solicitação" -#: ../../c-api/buffer.rst:282 ../../c-api/buffer.rst:306 -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:283 ../../c-api/buffer.rst:307 +#: ../../c-api/buffer.rst:332 msgid "shape" msgstr "Forma" -#: ../../c-api/buffer.rst:282 ../../c-api/buffer.rst:306 -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:283 ../../c-api/buffer.rst:307 +#: ../../c-api/buffer.rst:332 msgid "strides" msgstr "Avanços" -#: ../../c-api/buffer.rst:282 ../../c-api/buffer.rst:306 -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:283 ../../c-api/buffer.rst:307 +#: ../../c-api/buffer.rst:332 msgid "suboffsets" msgstr "subconjuntos" -#: ../../c-api/buffer.rst:284 ../../c-api/buffer.rst:286 -#: ../../c-api/buffer.rst:288 ../../c-api/buffer.rst:308 -#: ../../c-api/buffer.rst:310 ../../c-api/buffer.rst:312 -#: ../../c-api/buffer.rst:314 ../../c-api/buffer.rst:333 -#: ../../c-api/buffer.rst:335 ../../c-api/buffer.rst:337 -#: ../../c-api/buffer.rst:339 ../../c-api/buffer.rst:341 -#: ../../c-api/buffer.rst:343 ../../c-api/buffer.rst:345 -#: ../../c-api/buffer.rst:347 +#: ../../c-api/buffer.rst:285 ../../c-api/buffer.rst:287 +#: ../../c-api/buffer.rst:289 ../../c-api/buffer.rst:309 +#: ../../c-api/buffer.rst:311 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:315 ../../c-api/buffer.rst:334 +#: ../../c-api/buffer.rst:336 ../../c-api/buffer.rst:338 +#: ../../c-api/buffer.rst:340 ../../c-api/buffer.rst:342 +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 msgid "yes" msgstr "sim" -#: ../../c-api/buffer.rst:284 ../../c-api/buffer.rst:333 -#: ../../c-api/buffer.rst:335 +#: ../../c-api/buffer.rst:285 ../../c-api/buffer.rst:334 +#: ../../c-api/buffer.rst:336 msgid "if needed" msgstr "se necessário" -#: ../../c-api/buffer.rst:286 ../../c-api/buffer.rst:288 -#: ../../c-api/buffer.rst:290 ../../c-api/buffer.rst:308 -#: ../../c-api/buffer.rst:310 ../../c-api/buffer.rst:312 -#: ../../c-api/buffer.rst:314 ../../c-api/buffer.rst:337 -#: ../../c-api/buffer.rst:339 ../../c-api/buffer.rst:341 -#: ../../c-api/buffer.rst:343 ../../c-api/buffer.rst:345 -#: ../../c-api/buffer.rst:347 +#: ../../c-api/buffer.rst:287 ../../c-api/buffer.rst:289 +#: ../../c-api/buffer.rst:291 ../../c-api/buffer.rst:309 +#: ../../c-api/buffer.rst:311 ../../c-api/buffer.rst:313 +#: ../../c-api/buffer.rst:315 ../../c-api/buffer.rst:338 +#: ../../c-api/buffer.rst:340 ../../c-api/buffer.rst:342 +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 msgid "NULL" msgstr "NULL" -#: ../../c-api/buffer.rst:297 +#: ../../c-api/buffer.rst:298 msgid "contiguity requests" msgstr "requisições contíguas" -#: ../../c-api/buffer.rst:299 +#: ../../c-api/buffer.rst:300 msgid "" "C or Fortran :term:`contiguity ` can be explicitly requested, " "with and without stride information. Without stride information, the buffer " @@ -621,32 +618,32 @@ msgstr "" "solicitadas, com ou sem informação de avanço. Sem informação de avanço, o " "buffer deve ser C-contíguo." -#: ../../c-api/buffer.rst:306 ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:307 ../../c-api/buffer.rst:332 msgid "contig" msgstr "contig" -#: ../../c-api/buffer.rst:308 ../../c-api/buffer.rst:314 -#: ../../c-api/buffer.rst:345 ../../c-api/buffer.rst:347 +#: ../../c-api/buffer.rst:309 ../../c-api/buffer.rst:315 +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:348 msgid "C" msgstr "C" -#: ../../c-api/buffer.rst:310 +#: ../../c-api/buffer.rst:311 msgid "F" msgstr "F" -#: ../../c-api/buffer.rst:312 +#: ../../c-api/buffer.rst:313 msgid "C or F" msgstr "C ou F" -#: ../../c-api/buffer.rst:314 +#: ../../c-api/buffer.rst:315 msgid ":c:macro:`PyBUF_ND`" msgstr ":c:macro:`PyBUF_ND`" -#: ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:320 msgid "compound requests" msgstr "requisições compostas" -#: ../../c-api/buffer.rst:321 +#: ../../c-api/buffer.rst:322 msgid "" "All possible requests are fully defined by some combination of the flags in " "the previous section. For convenience, the buffer protocol provides " @@ -657,7 +654,7 @@ msgstr "" "protocolo do buffer fornece combinações frequentemente utilizadas como " "sinalizadores únicos." -#: ../../c-api/buffer.rst:325 +#: ../../c-api/buffer.rst:326 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." @@ -665,61 +662,63 @@ msgstr "" "Na seguinte tabela *U* significa contiguidade indefinida. O consumidor deve " "chamar :c:func:`PyBuffer_IsContiguous` para determinar a contiguidade." -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:332 msgid "readonly" msgstr "readonly" -#: ../../c-api/buffer.rst:331 +#: ../../c-api/buffer.rst:332 msgid "format" -msgstr "formato" +msgstr "format" -#: ../../c-api/buffer.rst:333 ../../c-api/buffer.rst:335 -#: ../../c-api/buffer.rst:337 ../../c-api/buffer.rst:339 -#: ../../c-api/buffer.rst:341 ../../c-api/buffer.rst:343 +#: ../../c-api/buffer.rst:334 ../../c-api/buffer.rst:336 +#: ../../c-api/buffer.rst:338 ../../c-api/buffer.rst:340 +#: ../../c-api/buffer.rst:342 ../../c-api/buffer.rst:344 msgid "U" msgstr "U" -#: ../../c-api/buffer.rst:333 ../../c-api/buffer.rst:337 -#: ../../c-api/buffer.rst:341 ../../c-api/buffer.rst:345 +#: ../../c-api/buffer.rst:334 ../../c-api/buffer.rst:338 +#: ../../c-api/buffer.rst:342 ../../c-api/buffer.rst:346 msgid "0" msgstr "0" -#: ../../c-api/buffer.rst:335 ../../c-api/buffer.rst:339 -#: ../../c-api/buffer.rst:343 ../../c-api/buffer.rst:347 +#: ../../c-api/buffer.rst:336 ../../c-api/buffer.rst:340 +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:348 msgid "1 or 0" msgstr "1 ou 0" -#: ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:353 msgid "Complex arrays" msgstr "Vetores Complexos" -#: ../../c-api/buffer.rst:355 +#: ../../c-api/buffer.rst:356 msgid "NumPy-style: shape and strides" msgstr "Estilo NumPy: forma e avanços" -#: ../../c-api/buffer.rst:357 +#: ../../c-api/buffer.rst:358 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`." +"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 "" -"A estrutura lógica de vetores do estilo NumPy é definida por :c:member:" -"`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." -"shape` e :c:member:`~Py_buffer.strides`." +"A estrutura lógica de vetores do estilo NumPy é definida " +"por :c:member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer.shape` " +"e :c:member:`~Py_buffer.strides`." -#: ../../c-api/buffer.rst:360 +#: ../../c-api/buffer.rst:361 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``." +"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 "" -"Se ``ndim == 0``, a localização da memória apontada para :c:member:" -"`~Py_buffer.buf` é interpretada como um escalar de tamanho :c:member:" -"`~Py_buffer.itemsize`. Nesse caso, ambos :c:member:`~Py_buffer.shape` e :c:" -"member:`~Py_buffer.strides` são ``NULL``." +"Se ``ndim == 0``, a localização da memória apontada " +"para :c:member:`~Py_buffer.buf` é interpretada como um escalar de " +"tamanho :c:member:`~Py_buffer.itemsize`. Nesse caso, " +"ambos :c:member:`~Py_buffer.shape` e :c:member:`~Py_buffer.strides` são " +"``NULL``." -#: ../../c-api/buffer.rst:364 +#: ../../c-api/buffer.rst:365 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-" @@ -729,7 +728,17 @@ msgstr "" "vetor C n-dimensional padrão. Caso contrário, o consumidor deve acessar um " "vetor n-dimensional como a seguir:" -#: ../../c-api/buffer.rst:374 +#: ../../c-api/buffer.rst:369 +msgid "" +"ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " +"strides[n-1];\n" +"item = *((typeof(item) *)ptr);" +msgstr "" +"ptr = (char *)buf + indices[0] * strides[0] + ... + indices[n-1] * " +"strides[n-1];\n" +"item = *((typeof(item) *)ptr);" + +#: ../../c-api/buffer.rst:375 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 " @@ -739,11 +748,65 @@ msgstr "" "localização dentro do bloco de memória em si. Um exportador pode verificar a " "validade de um buffer com essa função:" -#: ../../c-api/buffer.rst:408 +#: ../../c-api/buffer.rst:379 +msgid "" +"def verify_structure(memlen, itemsize, ndim, shape, strides, offset):\n" +" \"\"\"Verify that the parameters represent a valid array within\n" +" the bounds of the allocated memory:\n" +" char *mem: start of the physical memory block\n" +" memlen: length of the physical memory block\n" +" offset: (char *)buf - mem\n" +" \"\"\"\n" +" if offset % itemsize:\n" +" return False\n" +" if offset < 0 or offset+itemsize > memlen:\n" +" return False\n" +" if any(v % itemsize for v in strides):\n" +" return False\n" +"\n" +" if ndim <= 0:\n" +" return ndim == 0 and not shape and not strides\n" +" if 0 in shape:\n" +" return True\n" +"\n" +" imin = sum(strides[j]*(shape[j]-1) for j in range(ndim)\n" +" if strides[j] <= 0)\n" +" imax = sum(strides[j]*(shape[j]-1) for j in range(ndim)\n" +" if strides[j] > 0)\n" +"\n" +" return 0 <= offset+imin and offset+imax+itemsize <= memlen" +msgstr "" +"def verify_structure(memlen, itemsize, ndim, shape, strides, offset):\n" +" \"\"\"Verifica se os parâmetros representa um vetor válido dentro\n" +" dos limites da memória alocada:\n" +" char *mem: início do bloco de memória física\n" +" memlen: comprimento do bloco de memória física\n" +" offset: (char *)buf - mem\n" +" \"\"\"\n" +" if offset % itemsize:\n" +" return False\n" +" if offset < 0 or offset+itemsize > memlen:\n" +" return False\n" +" if any(v % itemsize for v in strides):\n" +" return False\n" +"\n" +" if ndim <= 0:\n" +" return ndim == 0 and not shape and not strides\n" +" if 0 in shape:\n" +" return True\n" +"\n" +" imin = sum(strides[j]*(shape[j]-1) for j in range(ndim)\n" +" if strides[j] <= 0)\n" +" imax = sum(strides[j]*(shape[j]-1) for j in range(ndim)\n" +" if strides[j] > 0)\n" +"\n" +" return 0 <= offset+imin and offset+imax+itemsize <= memlen" + +#: ../../c-api/buffer.rst:409 msgid "PIL-style: shape, strides and suboffsets" msgstr "Estilo-PIL: forma, avanços e suboffsets" -#: ../../c-api/buffer.rst:410 +#: ../../c-api/buffer.rst:411 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 " @@ -762,7 +825,7 @@ msgstr "" "matrizes ``char x[2][3]`` que podem estar localizadas em qualquer lugar na " "memória." -#: ../../c-api/buffer.rst:419 +#: ../../c-api/buffer.rst:420 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`` " @@ -772,11 +835,39 @@ msgstr "" "apontada por um índice N-dimensional onde existem ambos passos e " "subconjuntos não-``NULL``::" -#: ../../c-api/buffer.rst:438 +#: ../../c-api/buffer.rst:424 +msgid "" +"void *get_item_pointer(int ndim, void *buf, Py_ssize_t *strides,\n" +" Py_ssize_t *suboffsets, Py_ssize_t *indices) {\n" +" char *pointer = (char*)buf;\n" +" int i;\n" +" for (i = 0; i < ndim; i++) {\n" +" pointer += strides[i] * indices[i];\n" +" if (suboffsets[i] >=0 ) {\n" +" pointer = *((char**)pointer) + suboffsets[i];\n" +" }\n" +" }\n" +" return (void*)pointer;\n" +"}" +msgstr "" +"void *get_item_pointer(int ndim, void *buf, Py_ssize_t *strides,\n" +" Py_ssize_t *suboffsets, Py_ssize_t *indices) {\n" +" char *pointer = (char*)buf;\n" +" int i;\n" +" for (i = 0; i < ndim; i++) {\n" +" pointer += strides[i] * indices[i];\n" +" if (suboffsets[i] >=0 ) {\n" +" pointer = *((char**)pointer) + suboffsets[i];\n" +" }\n" +" }\n" +" return (void*)pointer;\n" +"}" + +#: ../../c-api/buffer.rst:439 msgid "Buffer-related functions" msgstr "Funções relacionadas ao Buffer" -#: ../../c-api/buffer.rst:442 +#: ../../c-api/buffer.rst:443 msgid "" "Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " "``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " @@ -786,18 +877,18 @@ msgstr "" "Quando ``1`` é retornado, isso não garante que :c:func:`PyObject_GetBuffer` " "será bem sucedida. Esta função é sempre bem sucedida." -#: ../../c-api/buffer.rst:449 +#: ../../c-api/buffer.rst:450 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``." +"the exporter cannot provide a buffer of the exact type, it MUST " +"raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" "Envia uma requisição ao *exporter* para preencher a *view* conforme " "especificado por *flags*. Se o exporter não conseguir prover um buffer do " "tipo especificado, ele DEVE levantar :exc:`BufferError`, definir ``view-" ">obj`` para ``NULL`` e retornar ``-1``." -#: ../../c-api/buffer.rst:454 +#: ../../c-api/buffer.rst:455 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 " @@ -810,19 +901,19 @@ msgstr "" "DEVE se referir a este objeto em vez de *exporter* (Veja :ref:`Buffer Object " "Structures `)." -#: ../../c-api/buffer.rst:459 +#: ../../c-api/buffer.rst:460 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." +"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 "" "Chamadas bem sucedidas para :c:func:`PyObject_GetBuffer` devem ser " -"emparelhadas a chamadas para :c:func:`PyBuffer_Release`, similar para :c:" -"func:`malloc` e :c:func:`free`. Assim, após o consumidor terminar com o " -"buffer, :c:func:`PyBuffer_Release` deve ser chamado exatamente uma vez." +"emparelhadas a chamadas para :c:func:`PyBuffer_Release`, similar " +"para :c:func:`malloc` e :c:func:`free`. Assim, após o consumidor terminar " +"com o buffer, :c:func:`PyBuffer_Release` deve ser chamado exatamente uma vez." -#: ../../c-api/buffer.rst:467 +#: ../../c-api/buffer.rst:468 msgid "" "Release the buffer *view* and release the :term:`strong reference` (i.e. " "decrement the reference count) to the view's supporting object, ``view-" @@ -834,23 +925,24 @@ msgstr "" "``view->obj``. Esta função DEVE ser chamada quando o buffer não estiver mais " "sendo usado, ou o vazamento de referências pode acontecer." -#: ../../c-api/buffer.rst:472 +#: ../../c-api/buffer.rst:473 msgid "" -"It is an error to call this function on a buffer that was not obtained via :" -"c:func:`PyObject_GetBuffer`." +"It is an error to call this function on a buffer that was not obtained " +"via :c:func:`PyObject_GetBuffer`." msgstr "" -"É um erro chamar essa função em um buffer que não foi obtido via :c:func:" -"`PyObject_GetBuffer`." +"É um erro chamar essa função em um buffer que não foi obtido " +"via :c:func:`PyObject_GetBuffer`." -#: ../../c-api/buffer.rst:478 +#: ../../c-api/buffer.rst:479 msgid "" -"Return the implied :c:member:`~Py_buffer.itemsize` from :c:member:" -"`~Py_buffer.format`. On error, raise an exception and return -1." +"Return the implied :c:member:`~Py_buffer.itemsize` " +"from :c:member:`~Py_buffer.format`. On error, raise an exception and return " +"-1." msgstr "" -"Retorna o :c:member:`~Py_buffer.itemsize` implícito de :c:member:`~Py_buffer." -"format`. Em erro, levantar e exceção e retornar -1." +"Retorna o :c:member:`~Py_buffer.itemsize` implícito " +"de :c:member:`~Py_buffer.format`. Em erro, levantar e exceção e retornar -1." -#: ../../c-api/buffer.rst:486 +#: ../../c-api/buffer.rst:487 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 " @@ -862,7 +954,7 @@ msgstr "" "``'F'``) ou qualquer outra (*order* é ``'A'``). Retorna ``0`` caso " "contrário. Essa função é sempre bem sucedida." -#: ../../c-api/buffer.rst:493 +#: ../../c-api/buffer.rst:494 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." @@ -870,7 +962,7 @@ msgstr "" "Recebe a área de memória apontada pelos *indices* dentro da *view* dada. " "*indices* deve apontar para um array de ``view->ndim`` índices." -#: ../../c-api/buffer.rst:499 +#: ../../c-api/buffer.rst:500 msgid "" "Copy contiguous *len* bytes from *buf* to *view*. *fort* can be ``'C'`` or " "``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " @@ -880,7 +972,7 @@ msgstr "" "``'F'`` (para ordenação estilo C ou estilo Fortran). Retorna ``0`` em caso " "de sucesso e ``-1`` em caso de erro." -#: ../../c-api/buffer.rst:506 +#: ../../c-api/buffer.rst:507 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 " @@ -891,11 +983,11 @@ msgstr "" "qualquer uma). O retorno é ``0`` em caso de sucesso e ``-1`` em caso de " "falha." -#: ../../c-api/buffer.rst:510 +#: ../../c-api/buffer.rst:511 msgid "This function fails if *len* != *src->len*." msgstr "Esta função falha se *len* != *src->len*." -#: ../../c-api/buffer.rst:515 +#: ../../c-api/buffer.rst:516 msgid "" "Copy data from *src* to *dest* buffer. Can convert between C-style and or " "Fortran-style buffers." @@ -903,11 +995,11 @@ msgstr "" "Copia os dados do buffer *src* para o buffer *dest*. Pode converter entre " "buffers de estilo C e/ou estilo Fortran." -#: ../../c-api/buffer.rst:518 +#: ../../c-api/buffer.rst:519 msgid "``0`` is returned on success, ``-1`` on error." msgstr "``0`` é retornado em caso de sucesso, ``-1`` em caso de erro." -#: ../../c-api/buffer.rst:522 +#: ../../c-api/buffer.rst:523 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 " @@ -917,7 +1009,7 @@ msgstr "" "(estilo C se *order* é ``'C'`` ou estilo Fortran se *order* for ``'F'``) da " "forma dada com o número dado de bytes por elemento." -#: ../../c-api/buffer.rst:529 +#: ../../c-api/buffer.rst:530 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 " @@ -927,7 +1019,7 @@ msgstr "" "tamanho *len* com capacidade de escrita definida de acordo com *readonly*. " "*buf* é interpretada como uma sequência de bytes sem sinal." -#: ../../c-api/buffer.rst:533 +#: ../../c-api/buffer.rst:534 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-" @@ -937,7 +1029,7 @@ msgstr "" "*view* como especificado por *flags*, a não ser que *buf* seja designado " "como somente leitura e :c:macro:`PyBUF_WRITABLE` esteja definido em *flags*." -#: ../../c-api/buffer.rst:537 +#: ../../c-api/buffer.rst:538 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 " @@ -947,7 +1039,7 @@ msgstr "" "*exporter* e retorna 0. Caso contrário, levante :exc:`BufferError` , defina " "``view->obj`` para ``NULL`` e retorne ``-1`` ;" -#: ../../c-api/buffer.rst:541 +#: ../../c-api/buffer.rst:542 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 " @@ -978,14 +1070,14 @@ msgstr "objeto buffer" msgid "PyBufferProcs (C type)" msgstr "PyBufferProcs (tipo C)" -#: ../../c-api/buffer.rst:294 +#: ../../c-api/buffer.rst:295 msgid "contiguous" msgstr "contíguo" -#: ../../c-api/buffer.rst:294 +#: ../../c-api/buffer.rst:295 msgid "C-contiguous" msgstr "contíguo C" -#: ../../c-api/buffer.rst:294 +#: ../../c-api/buffer.rst:295 msgid "Fortran contiguous" msgstr "contíguo Fortran" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index e9b266d13..037e9697f 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -1,33 +1,31 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# msilvavieira, 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/bytearray.rst:6 msgid "Byte Array Objects" -msgstr "Objetos Byte Array" +msgstr "Objetos byte array" #: ../../c-api/bytearray.rst:13 msgid "" @@ -69,59 +67,61 @@ msgstr "Funções diretas da API" #: ../../c-api/bytearray.rst:42 msgid "" -"Return a new bytearray object from any object, *o*, that implements the :ref:" -"`buffer protocol `." +"Return a new bytearray object from any object, *o*, that implements " +"the :ref:`buffer protocol `." msgstr "" "Retorna um novo objeto bytearray, *o*, que implementa o :ref:`protocolo de " "buffer`." -#: ../../c-api/bytearray.rst:48 -msgid "" -"Create a new bytearray object from *string* and its length, *len*. On " -"failure, ``NULL`` is returned." +#: ../../c-api/bytearray.rst:45 ../../c-api/bytearray.rst:52 +#: ../../c-api/bytearray.rst:59 +msgid "On failure, return ``NULL`` with an exception set." +msgstr "Em caso de falha, retorna ``NULL`` com uma exceção definida." + +#: ../../c-api/bytearray.rst:50 +msgid "Create a new bytearray object from *string* and its length, *len*." msgstr "" -"Cria um novo objeto bytearray a partir de *string* e seu comprimento, *len*. " -"Em caso de falha, ``NULL`` é retornado." +"Cria um novo objeto bytearray a partir de *string* e seu comprimento, *len*." -#: ../../c-api/bytearray.rst:54 +#: ../../c-api/bytearray.rst:57 msgid "" "Concat bytearrays *a* and *b* and return a new bytearray with the result." msgstr "" "Concatena os bytearrays *a* e *b* e retorna um novo bytearray com o " "resultado." -#: ../../c-api/bytearray.rst:59 +#: ../../c-api/bytearray.rst:64 msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." msgstr "" "Retorna o tamanho de *bytearray* após verificar se há um ponteiro ``NULL``." -#: ../../c-api/bytearray.rst:64 +#: ../../c-api/bytearray.rst:69 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 "" "Retorna o conteúdo de *bytearray* como uma matriz de caracteres após " -"verificar um ponteiro ``NULL``. A matriz retornada sempre tem um byte nulo " +"verificar um ponteiro ``NULL``. O array retornado sempre tem um byte nulo " "extra acrescentado." -#: ../../c-api/bytearray.rst:71 +#: ../../c-api/bytearray.rst:76 msgid "Resize the internal buffer of *bytearray* to *len*." msgstr "Redimensiona o buffer interno de *bytearray* para o tamanho *len*." -#: ../../c-api/bytearray.rst:74 +#: ../../c-api/bytearray.rst:79 msgid "Macros" msgstr "Macros" -#: ../../c-api/bytearray.rst:76 +#: ../../c-api/bytearray.rst:81 msgid "These macros trade safety for speed and they don't check pointers." msgstr "" "Estas macros trocam segurança por velocidade e não verificam os ponteiros." -#: ../../c-api/bytearray.rst:80 +#: ../../c-api/bytearray.rst:85 msgid "Similar to :c:func:`PyByteArray_AsString`, but without error checking." msgstr "Similar a :c:func:`PyByteArray_AsString`, mas sem verificação de erro." -#: ../../c-api/bytearray.rst:85 +#: ../../c-api/bytearray.rst:90 msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking." msgstr "Similar a :c:func:`PyByteArray_Size`, mas sem verificação de erro." diff --git a/c-api/bytes.po b/c-api/bytes.po index 368c6105c..1a31536ff 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -1,32 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Raphael Mendonça, 2021 -# Tiago Henrique , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Julio Gadioli Soares , 2021 -# Marco Rougeth , 2023 -# Rafael Fontenelle , 2023 -# Victor D. G., 2023 -# Adorilson Bezerra , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-15 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Adorilson Bezerra , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -306,8 +299,8 @@ msgid "" "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`." +"deallocated. If *o* is not a bytes object at " +"all, :c:func:`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." msgstr "" "Retorna um ponteiro para o conteúdo de *o*. O ponteiro se refere ao buffer " "interno de *o*, que consiste em ``len(o) + 1`` bytes. O último byte no " @@ -336,8 +329,8 @@ msgid "" "raised." msgstr "" "Se *length* for ``NULL``, o objeto bytes não poderá conter bytes nulos " -"incorporados; se isso acontecer, a função retornará ``-1`` e a :exc:" -"`ValueError` será levantado." +"incorporados; se isso acontecer, a função retornará ``-1`` e " +"a :exc:`ValueError` será levantado." #: ../../c-api/bytes.rst:164 msgid "" diff --git a/c-api/call.po b/c-api/call.po index 0139b6473..2db29f86c 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -1,32 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Alexandre B A Villares, 2021 -# Renan Lopes , 2021 -# Flávio Neves, 2022 -# Ana Carolina Dias, 2022 -# Mozart Dias Martins, 2023 -# Adorilson Bezerra , 2024 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-03 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -51,6 +44,12 @@ msgstr "" "Instâncias de classe que definem :c:member:`~PyTypeObject.tp_call` são " "chamáveis. A assinatura do slot é::" +#: ../../c-api/call.rst:17 +msgid "" +"PyObject *tp_call(PyObject *callable, PyObject *args, PyObject *kwargs);" +msgstr "" +"PyObject *tp_call(PyObject *callable, PyObject *args, PyObject *kwargs);" + #: ../../c-api/call.rst:19 msgid "" "A call is made using a tuple for the positional arguments and a dict for the " @@ -66,20 +65,21 @@ 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." +"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 "" -"Esta convenção não é somente usada por *tp_call*: :c:member:`~PyTypeObject." -"tp_new` e :c:member:`~PyTypeObject.tp_init` também passam argumento dessa " -"forma." +"Esta convenção não é somente usada por " +"*tp_call*: :c:member:`~PyTypeObject.tp_new` " +"e :c:member:`~PyTypeObject.tp_init` também passam argumento dessa forma." #: ../../c-api/call.rst:29 msgid "" "To call an object, use :c:func:`PyObject_Call` or another :ref:`call API " "`." msgstr "" -"Para chamar um objeto, use :c:func:`PyObject_Call` ou outra :ref:`call API " -"`." +"Para chamar um objeto, use :c:func:`PyObject_Call` ou outra :ref:`API de " +"chamada `." #: ../../c-api/call.rst:36 msgid "The Vectorcall Protocol" @@ -97,30 +97,31 @@ msgstr "" 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 "" -"Como regra de bolso. CPython vai preferir o vectorcall para invocações " -"internas se o chamável suportar. Entretanto, isso não é uma regra rígida. " -"Ademais, alguma extensões de terceiros usam diretamente *tp_call* (em vez " -"de utilizar :c:func:`PyObject_Call`). Portanto, uma classe que suporta " +"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 "" +"Como regra de ouro, CPython vai preferir o vectorcall para chamadas internas " +"se o chamável suportar. Entretanto, isso não é uma regra rígida. Ademais, " +"alguma extensões de terceiros usam *tp_call* diretamente (em vez de " +"utilizar :c:func:`PyObject_Call`). Portanto, uma classe que suporta " "vectorcall precisa também implementar :c:member:`~PyTypeObject.tp_call`. " "Além disso, o chamável precisa se comportar da mesma forma independe de qual " -"protocolo é utilizado. A forma recomendada de alcançar isso é definindo :c:" -"member:`~PyTypeObject.tp_call` para :c:func:`PyVectorcall_Call`. Vale a pena " -"repetir:" +"protocolo é utilizado. A forma recomendada de alcançar isso é " +"definindo :c:member:`~PyTypeObject.tp_call` " +"para :c:func:`PyVectorcall_Call`. Vale a pena repetir:" #: ../../c-api/call.rst:57 msgid "" -"A class supporting vectorcall **must** also implement :c:member:" -"`~PyTypeObject.tp_call` with the same semantics." +"A class supporting vectorcall **must** also " +"implement :c:member:`~PyTypeObject.tp_call` with the same semantics." msgstr "" -"Uma classe que suporte vectorcall também **precisa** implementar :c:member:" -"`~PyTypeObject.tp_call` com a mesma semântica." +"Uma classe que suporte vectorcall também **precisa** " +"implementar :c:member:`~PyTypeObject.tp_call` com a mesma semântica." #: ../../c-api/call.rst:62 msgid "" @@ -131,12 +132,12 @@ msgid "" "versions, vectorcall should only be used with :c:macro:`immutable " "` or static types." msgstr "" -"O sinalizador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` agora é removida da " +"O sinalizador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` agora é removido da " "classe quando o método :py:meth:`~object.__call__` está reatribuído. " "(Internamente, isso apenas define :c:member:`~PyTypeObject.tp_call`, e " -"portanto, pode fazê-lo comportar-se de forma diferente da função vetorcall. " -"Em versões anteriores do Python, vectorcall só deve ser usado com tipos :c:" -"macro:`imutáveis ` ou estáticos." +"portanto, pode fazê-lo comportar-se de forma diferente da função vectorcall. " +"Em versões anteriores do Python, vectorcall só deve ser usado com " +"tipos :c:macro:`imutáveis ` ou estáticos." #: ../../c-api/call.rst:69 msgid "" @@ -152,17 +153,17 @@ 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:" +"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 "" -"Classes podem implementar o protocolo vectorcall ativando o sinalizador :c:" -"macro:`Py_TPFLAGS_HAVE_VECTORCALL` e configurando :c:member:`~PyTypeObject." -"tp_vectorcall_offset` para o offset dentro da estrutura do objeto onde uma " -"*vectorcallfunc* aparece. Este é um ponteiro para uma função com a seguinte " -"assinatura:" +"Classes podem implementar o protocolo vectorcall ativando o " +"sinalizador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` e " +"configurando :c:member:`~PyTypeObject.tp_vectorcall_offset` para o offset " +"dentro da estrutura do objeto onde uma *vectorcallfunc* aparece. Este é um " +"ponteiro para uma função com a seguinte assinatura:" #: ../../c-api/call.rst:82 msgid "*callable* is the object being called." @@ -235,10 +236,10 @@ msgid "" "include a prepended *self* argument) very efficiently." msgstr "" "Sempre que podem realizar a um custo tão baixo (sem alocações adicionais), " -"invocadores são encorajados a usar :c:macro:" -"`PY_VECTORCALL_ARGUMENTS_OFFSET`. Isso permitirá invocados como métodos " -"vinculados a instâncias fazerem suas próprias invocações (o que inclui um " -"argumento *self*) muito eficientemente." +"invocadores são encorajados a " +"usar :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Isso permitirá invocados " +"como métodos vinculados a instâncias fazerem suas próprias invocações (o que " +"inclui um argumento *self*) muito eficientemente." #: ../../c-api/call.rst:113 msgid "" @@ -246,9 +247,9 @@ msgid "" "call>` function as with any other callable. :c:func:`PyObject_Vectorcall` " "will usually be most efficient." msgstr "" -"Para invocar um objeto que implementa vectorcall, utilize a função :ref:" -"`call API ` como qualquer outra invocável. :c:func:" -"`PyObject_Vectorcall` será normalmente mais eficiente." +"Para invocar um objeto que implementa vectorcall, utilize a " +"função :ref:`call API ` como qualquer outra " +"invocável. :c:func:`PyObject_Vectorcall` será normalmente mais eficiente." #: ../../c-api/call.rst:120 msgid "" @@ -277,12 +278,13 @@ msgstr "Controle de recursão" #: ../../c-api/call.rst:134 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*." +"`: CPython uses :c:func:`Py_EnterRecursiveCall` " +"and :c:func:`Py_LeaveRecursiveCall` for calls made using *tp_call*." msgstr "" -"Quando utilizando *tp_call*, invocadores não precisam se preocupar sobre :" -"ref:`recursão `: CPython usa :c:func:`Py_EnterRecursiveCall` e :c:" -"func:`Py_LeaveRecursiveCall` para chamadas utilizando *tp_call*." +"Quando utilizando *tp_call*, invocadores não precisam se preocupar " +"sobre :ref:`recursão `: CPython " +"usa :c:func:`Py_EnterRecursiveCall` e :c:func:`Py_LeaveRecursiveCall` para " +"chamadas utilizando *tp_call*." #: ../../c-api/call.rst:139 msgid "" @@ -306,6 +308,10 @@ msgstr "" "Dado um argumento de chamada de vetor *nargsf*, retorna o número real de " "argumentos. Atualmente equivalente a::" +#: ../../c-api/call.rst:153 +msgid "(Py_ssize_t)(nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET)" +msgstr "(Py_ssize_t)(nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET)" + #: ../../c-api/call.rst:155 msgid "" "However, the function ``PyVectorcall_NARGS`` should be used to allow for " @@ -344,15 +350,16 @@ msgstr "" #: ../../c-api/call.rst:177 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``." +"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 "" -"Esta é uma função especializada, feita para ser colocada no slot :c:member:" -"`~PyTypeObject.tp_call` ou usada em uma implementação de ``tp_call``. Ela " -"não verifica o sinalizador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` e não " -"retorna para ``tp_call``." +"Esta é uma função especializada, feita para ser colocada no " +"slot :c:member:`~PyTypeObject.tp_call` ou usada em uma implementação de " +"``tp_call``. Ela não verifica o " +"sinalizador :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` e não retorna para " +"``tp_call``." #: ../../c-api/call.rst:188 msgid "Object Calling API" @@ -445,7 +452,7 @@ msgstr ":c:func:`PyObject_CallFunction`" #: ../../c-api/call.rst:210 ../../c-api/call.rst:212 msgid "format" -msgstr "formato" +msgstr "format" #: ../../c-api/call.rst:212 msgid ":c:func:`PyObject_CallMethod`" @@ -576,11 +583,11 @@ msgstr "" #: ../../c-api/call.rst:289 msgid "" -"Note that if you only pass :c:expr:`PyObject *` args, :c:func:" -"`PyObject_CallFunctionObjArgs` is a faster alternative." +"Note that if you only pass :c:expr:`PyObject *` " +"args, :c:func:`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" -"Note que se você apenas passa argumentos :c:expr:`PyObject *`, :c:func:" -"`PyObject_CallFunctionObjArgs` é uma alternativa mais rápida." +"Note que se você apenas passa argumentos :c:expr:`PyObject " +"*`, :c:func:`PyObject_CallFunctionObjArgs` é uma alternativa mais rápida." #: ../../c-api/call.rst:292 msgid "The type of *format* was changed from ``char *``." @@ -593,8 +600,8 @@ msgid "" "format string that should produce a tuple." msgstr "" "Chama o método chamado *name* do objeto *obj* com um número variável de " -"argumentos C. Os argumentos C são descritos com uma string de formato :c:" -"func:`Py_BuildValue` que deve produzir uma tupla." +"argumentos C. Os argumentos C são descritos com uma string de " +"formato :c:func:`Py_BuildValue` que deve produzir uma tupla." #: ../../c-api/call.rst:302 msgid "The format can be *NULL*, indicating that no arguments are provided." @@ -609,11 +616,11 @@ msgstr "" #: ../../c-api/call.rst:310 msgid "" -"Note that if you only pass :c:expr:`PyObject *` args, :c:func:" -"`PyObject_CallMethodObjArgs` is a faster alternative." +"Note that if you only pass :c:expr:`PyObject *` " +"args, :c:func:`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" -"Note que se você apenas passa argumentos :c:expr:`PyObject *`, :c:func:" -"`PyObject_CallMethodObjArgs` é uma alternativa mais rápida." +"Note que se você apenas passa argumentos :c:expr:`PyObject " +"*`, :c:func:`PyObject_CallMethodObjArgs` é uma alternativa mais rápida." #: ../../c-api/call.rst:313 msgid "The types of *name* and *format* were changed from ``char *``." @@ -621,9 +628,9 @@ msgstr "Os tipos de *name* e *format* foram mudados de ``char *``." #: ../../c-api/call.rst:319 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*." +"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 "" "Chama um objeto Python chamável de *callable*, com um número variável de " "argumentos :c:expr:`PyObject *`. Os argumentos são providos como um número " @@ -667,12 +674,12 @@ msgstr "" #: ../../c-api/call.rst:366 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*." +"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 "" -"Chama um objeto Python chamável *callable*. Os argumentos são os mesmos de :" -"c:type:`vectorcallfunc`. Se *callable* tiver suporte a vectorcall_, isso " +"Chama um objeto Python chamável *callable*. Os argumentos são os mesmos " +"de :c:type:`vectorcallfunc`. Se *callable* tiver suporte a vectorcall_, isso " "chamará diretamente a função vectorcall armazenada em *callable*." #: ../../c-api/call.rst:378 @@ -703,19 +710,19 @@ msgid "" "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`." +"*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 "" "Chama um método usando a convenção de chamada vectorcall. O nome do método é " "dado como uma string Python *name*. O objeto cujo método é chamado é " "*args[0]*, e o array *args* começando em *args[1]* representa os argumentos " "da chamada. Deve haver pelo menos um argumento posicional. *nargsf* é o " -"número de argumentos posicionais incluindo *args[0]*, mais :c:macro:" -"`PY_VECTORCALL_ARGUMENTS_OFFSET` se o valor de ``args[0]`` puder ser " -"alterado temporariamente. Argumentos nomeados podem ser passados como em :c:" -"func:`PyObject_Vectorcall`." +"número de argumentos posicionais incluindo *args[0]*, " +"mais :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` se o valor de ``args[0]`` " +"puder ser alterado temporariamente. Argumentos nomeados podem ser passados " +"como em :c:func:`PyObject_Vectorcall`." #: ../../c-api/call.rst:401 msgid "" diff --git a/c-api/capsule.po b/c-api/capsule.po index bf4bd6bbe..b7c62d05e 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -45,8 +44,8 @@ msgid "" "loaded modules." msgstr "" "Este subtipo de :c:type:`PyObject` representa um valor opaco, útil para " -"módulos de extensão C que precisam passar um valor opaco (como ponteiro :c:" -"expr:`void*`) através do código Python para outro código C . É " +"módulos de extensão C que precisam passar um valor opaco (como " +"ponteiro :c:expr:`void*`) através do código Python para outro código C . É " "frequentemente usado para disponibilizar um ponteiro de função C definido em " "um módulo para outros módulos, para que o mecanismo de importação regular " "possa ser usado para acessar APIs C definidas em módulos carregados " @@ -57,6 +56,10 @@ msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "" "O tipo de um retorno de chamada destruidor para uma cápsula. Definido como::" +#: ../../c-api/capsule.rst:29 +msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" +msgstr "typedef void (*PyCapsule_Destructor)(PyObject *);" + #: ../../c-api/capsule.rst:31 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " @@ -144,12 +147,12 @@ msgstr "" #: ../../c-api/capsule.rst:76 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." +"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "É legal para uma cápsula ter um destruidor ``NULL``. Isso torna um código de " -"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` ou :c:" -"func:`PyErr_Occurred` para desambiguar." +"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` " +"ou :c:func:`PyErr_Occurred` para desambiguar." #: ../../c-api/capsule.rst:83 msgid "" @@ -162,12 +165,12 @@ msgstr "" #: ../../c-api/capsule.rst:86 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." +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "É legal para uma cápsula ter um contexto ``NULL``. Isso torna um código de " -"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` ou :c:" -"func:`PyErr_Occurred` para desambiguar." +"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` " +"ou :c:func:`PyErr_Occurred` para desambiguar." #: ../../c-api/capsule.rst:93 msgid "" @@ -180,12 +183,12 @@ msgstr "" #: ../../c-api/capsule.rst:96 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." +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "É legal para uma cápsula ter um nome ``NULL``. Isso torna um código de " -"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` ou :c:" -"func:`PyErr_Occurred` para desambiguar." +"retorno ``NULL`` um tanto ambíguo; use :c:func:`PyCapsule_IsValid` " +"ou :c:func:`PyErr_Occurred` para desambiguar." #: ../../c-api/capsule.rst:103 msgid "" diff --git a/c-api/cell.po b/c-api/cell.po index 75e187e70..09fe6bf09 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:47+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -38,9 +38,9 @@ msgid "" "support from the generated byte-code; these are not automatically de-" "referenced when accessed. Cell objects are not likely to be useful elsewhere." msgstr "" -"Objetos \"cell\" são usados ​​para implementar variáveis ​​referenciadas por " +"Objetos \"cell\" são usados para implementar variáveis referenciadas por " "múltiplos escopos. Para cada variável, um objeto célula é criado para " -"armazenar o valor; as variáveis ​​locais de cada quadro de pilha que " +"armazenar o valor; as variáveis locais de cada quadro de pilha que " "referencia o valor contém uma referência para as células de escopos externos " "que também usam essa variável. Quando o valor é acessado, o valor contido na " "célula é usado em vez do próprio objeto da célula. Essa des-referência do " @@ -73,10 +73,14 @@ msgstr "" "ser ``NULL``." #: ../../c-api/cell.rst:42 -msgid "Return the contents of the cell *cell*." -msgstr "Retorna o conteúdo da célula *cell*." +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 "" +"Retorna o conteúdo da célula *cell*, que pode ser ``NULL``. Se *cell* não " +"for um objeto célula, retorna ``NULL`` com um conjunto de exceções." -#: ../../c-api/cell.rst:47 +#: ../../c-api/cell.rst:48 msgid "" "Return the contents of the cell *cell*, but without checking that *cell* is " "non-``NULL`` and a cell object." @@ -84,19 +88,25 @@ msgstr "" "Retorna o conteúdo da célula *cell*, mas sem verificar se *cell* não é " "``NULL`` e um objeto célula." -#: ../../c-api/cell.rst:53 +#: ../../c-api/cell.rst:54 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``; if it is not a cell object, ``-1`` will be " -"returned. On success, ``0`` will be returned." +"*cell* must be non-``NULL``." msgstr "" "Define o conteúdo do objeto da célula *cell* como *value*. Isso libera a " "referência a qualquer conteúdo atual da célula. *value* pode ser ``NULL``. " -"*cell* não pode ser ``NULL``; se não for um objeto célula, ``-1`` será " -"retornado. Em caso de sucesso, ``0`` será retornado." +"*cell* não pode ser ``NULL``." + +#: ../../c-api/cell.rst:58 +msgid "" +"On success, return ``0``. If *cell* is not a cell object, set an exception " +"and return ``-1``." +msgstr "" +"Em caso de sucesso, retorna ``0``. Se *cell* não for um objeto célula, " +"define uma exceção e retorna ``-1``." -#: ../../c-api/cell.rst:61 +#: ../../c-api/cell.rst:64 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`` " diff --git a/c-api/code.po b/c-api/code.po index 1e1f47b66..36ae4649b 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Welliton Malta , 2023 -# PAULO NASCIMENTO, 2024 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-22 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -49,23 +47,27 @@ msgstr "" #: ../../c-api/code.rst:24 msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the Python :ref:" -"`code object `." +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :ref:`code object `." msgstr "" +"Esta é uma instância de :c:type:`PyTypeObject` representando o :ref:`objeto " +"código ` Python." #: ../../c-api/code.rst:30 msgid "" "Return true if *co* is a :ref:`code object `. This function " "always succeeds." msgstr "" +"Retorna verdadeiro se *co* for um :ref:`objeto código `. Esta " +"função sempre tem sucesso." #: ../../c-api/code.rst:35 msgid "Return the number of free variables in a code object." -msgstr "" +msgstr "Retorna o número de variáveis livres em um objeto código." #: ../../c-api/code.rst:39 msgid "Return the position of the first free variable in a code object." -msgstr "" +msgstr "Retorna a posição da primeira variável livre em um objeto código." #: ../../c-api/code.rst:43 msgid "" @@ -77,12 +79,13 @@ msgstr "" #: ../../c-api/code.rst:46 msgid "" -"Since the definition of the bytecode changes often, calling :c:func:" -"`PyUnstable_Code_New` directly can bind you to a precise Python version." +"Since the definition of the bytecode changes often, " +"calling :c:func:`PyUnstable_Code_New` directly can bind you to a precise " +"Python version." msgstr "" -"Como a definição de bytecode muda constantemente, chamar :c:func:" -"`PyUnstable_Code_New` diretamente pode vinculá-lo a uma versão de Python " -"específica." +"Como a definição de bytecode muda constantemente, " +"chamar :c:func:`PyUnstable_Code_New` diretamente pode vinculá-lo a uma " +"versão de Python específica." #: ../../c-api/code.rst:49 msgid "" @@ -156,13 +159,13 @@ msgstr "" #: ../../c-api/code.rst:93 msgid "" -"For efficiently iterating over the line numbers in a code object, use `the " -"API described in PEP 626 `_." +"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 "" "Para iterar eficientemente sobre os números de linha em um objeto código, " -"use `a API descrita em PEP 626 `_ ." +"use :pep:`a API descrita na PEP 626 <0626#out-of-process-debuggers-and-" +"profilers>` ." #: ../../c-api/code.rst:98 msgid "" @@ -240,16 +243,16 @@ msgid "" "exception." msgstr "" "Registra *callback* como um observador do objeto código para o interpretador " -"atual. Devolve um ID que pode ser passado para :c:func:" -"`PyCode_ClearWatcher`. Em caso de erro (por exemplo, não há IDs de " -"observadores disponíveis), devolve ``-1`` e define uma exceção." +"atual. Devolve um ID que pode ser passado " +"para :c:func:`PyCode_ClearWatcher`. Em caso de erro (por exemplo, não há IDs " +"de observadores disponíveis), devolve ``-1`` e define uma exceção." #: ../../c-api/code.rst:156 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.)" +"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 "" "Libera o observador identificado por *watcher_id* anteriormente retornado " "por :c:func:`PyCode_AddWatcher` para o interpretador atual. Retorna ``0`` em " @@ -312,12 +315,13 @@ msgstr "" #: ../../c-api/code.rst:192 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``." +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" -"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``; essa " -"exceção será impressa como uma exceção não reprovável usando :c:func:" -"`PyErr_WriteUnraisable`. Caso contrário, deverá retornar ``0``." +"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``. Essa " +"exceção será exibida como uma exceção não levantável " +"usando :c:func:`PyErr_WriteUnraisable`. Caso contrário, deverá retornar " +"``0``." #: ../../c-api/code.rst:196 msgid "" @@ -327,11 +331,11 @@ msgid "" "exception unless it saves and clears the exception state first, and restores " "it before returning." msgstr "" -"É possível que já exista uma exceção pendente definida na entrada da chamada " +"É possível que já exista uma exceção pendente definida na entrada da função " "de retorno. Nesse caso, a função de retorno deve retornar ``0`` com a mesma " -"exceção ainda definida. Isso significa que a callback não pode chamar " -"nenhuma outra API que possa definir uma exceção, a menos que salve e limpe o " -"estado da exceção primeiro e o restaure antes de retornar." +"exceção ainda definida. Isso significa que a função de retorno não pode " +"chamar nenhuma outra API que possa definir uma exceção, a menos que salve e " +"limpe o estado da exceção primeiro e restaure a exceção antes de retornar." #: ../../c-api/code.rst:206 msgid "Extra information" @@ -343,9 +347,9 @@ msgid "" "in-time compilers, it is possible to attach arbitrary extra data to code " "objects." msgstr "" -"Para suportar extensões de baixo nível de avaliação de quadro (frame), tais " -"como compiladores \"just-in-time\", é possível anexar dados arbitrários " -"adicionais a objetos código." +"Para oferece suporte a extensões de baixo nível de avaliação de quadro " +"(frame), tais como compiladores \"just-in-time\", é possível anexar dados " +"arbitrários adicionais a objetos código." #: ../../c-api/code.rst:212 msgid "" @@ -376,12 +380,12 @@ msgstr "" #: ../../c-api/code.rst:224 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`." +"called on non-``NULL`` data stored under the new index. " +"Use :c:func:`Py_DecRef` when storing :c:type:`PyObject`." msgstr "" "Se *free* não for ``NULL``: quando o objeto código é desalocado, *free* será " -"chamado em dados não-``NULL`` armazenados sob o novo índice. Use :c:func:" -"`Py_DecRef` quando armazenar :c:type:`PyObject`." +"chamado em dados não-``NULL`` armazenados sob o novo índice. " +"Use :c:func:`Py_DecRef` quando armazenar :c:type:`PyObject`." #: ../../c-api/code.rst:230 msgid "as ``_PyEval_RequestCodeExtraIndex``" @@ -414,7 +418,7 @@ msgstr "" #: ../../c-api/code.rst:248 msgid "as ``_PyCode_GetExtra``" -msgstr "" +msgstr "como ``_PyCode_GetExtra``" #: ../../c-api/code.rst:252 msgid "" @@ -429,16 +433,20 @@ 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 "" +"Define os dados extras armazenados sob o índice dado a *extra*. Retorna 0 em " +"caso de sucesso. Define uma exceção e retorna -1 em caso de erro." #: ../../c-api/code.rst:263 msgid "as ``_PyCode_SetExtra``" -msgstr "" +msgstr "como ``_PyCode_SetExtra``" #: ../../c-api/code.rst:267 msgid "" "Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " "but will be available until the API changes." msgstr "" +"Renomeado para ``PyUnstable_Code_SetExtra``. O nome antigo privado foi " +"descontinuado, mas continuará disponível até a mudança da API." #: ../../c-api/code.rst:3 msgid "object" @@ -454,20 +462,20 @@ msgstr "objeto código" #: ../../c-api/code.rst:56 msgid "PyCode_New (C function)" -msgstr "" +msgstr "PyCode_New (função C)" #: ../../c-api/code.rst:69 msgid "PyCode_NewWithPosOnlyArgs (C function)" -msgstr "" +msgstr "PyCode_NewWithPosOnlyArgs (função C)" #: ../../c-api/code.rst:228 msgid "_PyEval_RequestCodeExtraIndex (C function)" -msgstr "" +msgstr "_PyEval_RequestCodeExtraIndex (função C)" #: ../../c-api/code.rst:246 msgid "_PyCode_GetExtra (C function)" -msgstr "" +msgstr "_PyCode_GetExtra (função C)" #: ../../c-api/code.rst:261 msgid "_PyCode_SetExtra (C function)" -msgstr "" +msgstr "_PyCode_SetExtra (função C)" diff --git a/c-api/codec.po b/c-api/codec.po index 7585df315..5e42cab43 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Tiago Henrique , 2021 -# Hildeberto Abreu Magalhães , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -68,8 +66,8 @@ msgstr "API de codificação baseada em codec genérico." 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." +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." msgstr "" "*object* é passado através da função de codificação encontrada para a " "codificação fornecida por meio de *encoding*, usando o método de tratamento " @@ -85,8 +83,8 @@ msgstr "API de decodificação baseada em decodificador genérico." 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 encoder can be found." +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." msgstr "" "*object* é passado através da função de decodificação encontrada para a " "codificação fornecida por meio de *encoding*, usando o método de tratamento " @@ -102,8 +100,8 @@ msgstr "API de pesquisa de codec" 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." +"mechanism effectively case-insensitive. If no codec is found, " +"a :exc:`KeyError` is set and ``NULL`` returned." msgstr "" "Nas funções a seguir, a string *encoding* é pesquisada com todos os " "caracteres sendo convertidos para minúsculo, o que faz com que as " @@ -165,9 +163,9 @@ 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 " +"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 " @@ -175,9 +173,9 @@ msgid "" "integer giving the offset in the original string at which encoding/decoding " "should be resumed." msgstr "" -"O retorno de chamada obtém um único argumento, uma instância de :exc:" -"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` ou :exc:" -"`UnicodeTranslateError` que contém informações sobre a sequencia " +"O retorno de chamada obtém um único argumento, uma instância " +"de :exc:`UnicodeEncodeError`, :exc:`UnicodeDecodeError` " +"ou :exc:`UnicodeTranslateError` que contém informações sobre a sequencia " "problemática de caracteres ou bytes e seu deslocamento na string original " "(consulte :ref:`unicodeexceptions` para funções que extraem essa " "informação). A função de retorno de chamada deve levantar a exceção dada, ou " diff --git a/c-api/complex.po b/c-api/complex.po index cae4c8180..d228584b8 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -1,33 +1,31 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Renan Lopes , 2021 -# Marco Rougeth , 2023 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/complex.rst:6 msgid "Complex Number Objects" -msgstr "Objetos de números complexos" +msgstr "Objetos números complexos" #: ../../c-api/complex.rst:10 msgid "" @@ -36,7 +34,7 @@ msgid "" "and the other is a C structure which represents the actual complex number " "value. The API provides functions for working with both." msgstr "" -"Os objetos de números complexos do Python são implementados como dois tipos " +"Os objetos números complexos do Python são implementados como dois tipos " "distintos quando visualizados na API C: um é o objeto Python exposto aos " "programas Python e o outro é uma estrutura C que representa o valor real do " "número complexo. A API fornece funções para trabalhar com ambos." @@ -60,70 +58,86 @@ 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. It is defined as::" +"appropriate." msgstr "" "A estrutura C que corresponde à parte do valor de um objeto de número " "complexo Python. A maioria das funções para lidar com objetos de números " "complexos usa estruturas desse tipo como valores de entrada ou saída, " -"conforme apropriado. É definido como::" +"conforme apropriado." + +#: ../../c-api/complex.rst:33 +msgid "The structure is defined as::" +msgstr "A estrutura é definida como::" + +#: ../../c-api/complex.rst:35 +msgid "" +"typedef struct {\n" +" double real;\n" +" double imag;\n" +"} Py_complex;" +msgstr "" +"typedef struct {\n" +" double real;\n" +" double imag;\n" +"} Py_complex;" -#: ../../c-api/complex.rst:39 +#: ../../c-api/complex.rst:43 msgid "" "Return the sum of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" -"Retorna a soma de dois números complexos, utilizando a representação C :c:" -"type:`Py_complex`." +"Retorna a soma de dois números complexos, utilizando a representação " +"C :c:type:`Py_complex`." -#: ../../c-api/complex.rst:45 +#: ../../c-api/complex.rst:49 msgid "" -"Return the difference between two complex numbers, using the C :c:type:" -"`Py_complex` representation." +"Return the difference between two complex numbers, using the " +"C :c:type:`Py_complex` representation." msgstr "" "Retorna a diferença entre dois números complexos, utilizando a representação " "C :c:type:`Py_complex`." -#: ../../c-api/complex.rst:51 +#: ../../c-api/complex.rst:55 msgid "" -"Return the negation of the complex number *num*, using the C :c:type:" -"`Py_complex` representation." +"Return the negation of the complex number *num*, using the " +"C :c:type:`Py_complex` representation." msgstr "" -"Retorna a negação do número complexo *num*, utilizando a representação C :c:" -"type:`Py_complex`." +"Retorna a negação do número complexo *num*, utilizando a representação " +"C :c:type:`Py_complex`." -#: ../../c-api/complex.rst:57 +#: ../../c-api/complex.rst:61 msgid "" "Return the product of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" -"Retorna o produto de dois números complexos, utilizando a representação C :c:" -"type:`Py_complex`." +"Retorna o produto de dois números complexos, utilizando a representação " +"C :c:type:`Py_complex`." -#: ../../c-api/complex.rst:63 +#: ../../c-api/complex.rst:67 msgid "" "Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " "representation." msgstr "" -"Retorna o quociente de dois números complexos, utilizando a representação C :" -"c:type:`Py_complex`." +"Retorna o quociente de dois números complexos, utilizando a representação " +"C :c:type:`Py_complex`." -#: ../../c-api/complex.rst:66 +#: ../../c-api/complex.rst:70 msgid "" -"If *divisor* is null, this method returns zero and sets :c:data:`errno` to :" -"c:macro:`!EDOM`." +"If *divisor* is null, this method returns zero and sets :c:data:`errno` " +"to :c:macro:`!EDOM`." msgstr "" -"Se *divisor* é nulo, este método retorna zero e define :c:data:`errno` para :" -"c:macro:`!EDOM`." +"Se *divisor* é nulo, este método retorna zero e define :c:data:`errno` " +"para :c:macro:`!EDOM`." -#: ../../c-api/complex.rst:72 +#: ../../c-api/complex.rst:76 msgid "" -"Return the exponentiation of *num* by *exp*, using the C :c:type:" -"`Py_complex` representation." +"Return the exponentiation of *num* by *exp*, using the " +"C :c:type:`Py_complex` representation." msgstr "" -"Retorna a exponenciação de *num* por *exp*, utilizando a representação C :c:" -"type:`Py_complex`" +"Retorna a exponenciação de *num* por *exp*, utilizando a representação " +"C :c:type:`Py_complex`" -#: ../../c-api/complex.rst:75 +#: ../../c-api/complex.rst:79 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`." @@ -131,18 +145,18 @@ msgstr "" "Se *num* for nulo e *exp* não for um número real positivo, este método " "retorna zero e define :c:data:`errno` para :c:macro:`!EDOM`." -#: ../../c-api/complex.rst:80 +#: ../../c-api/complex.rst:84 msgid "Complex Numbers as Python Objects" msgstr "Números complexos como objetos Python" -#: ../../c-api/complex.rst:85 +#: ../../c-api/complex.rst:89 msgid "" "This subtype of :c:type:`PyObject` represents a Python complex number object." msgstr "" "Este subtipo de :c:type:`PyObject` representa um objeto Python de número " "complexo." -#: ../../c-api/complex.rst:90 +#: ../../c-api/complex.rst:94 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." @@ -150,15 +164,15 @@ msgstr "" "Esta instância de :c:type:`PyTypeObject` representa o tipo de número " "complexo Python. É o mesmo objeto que :class:`complex` na camada Python." -#: ../../c-api/complex.rst:96 +#: ../../c-api/complex.rst:100 msgid "" -"Return true if its argument is a :c:type:`PyComplexObject` or a subtype of :" -"c:type:`PyComplexObject`. This function always succeeds." +"Return true if its argument is a :c:type:`PyComplexObject` or a subtype " +"of :c:type:`PyComplexObject`. This function always succeeds." msgstr "" "Retorna true se seu argumento é um :c:type:`PyComplexObject` ou um subtipo " "de :c:type:`PyComplexObject`. Esta função sempre tem sucesso." -#: ../../c-api/complex.rst:102 +#: ../../c-api/complex.rst:106 msgid "" "Return true if its argument is a :c:type:`PyComplexObject`, but not a " "subtype of :c:type:`PyComplexObject`. This function always succeeds." @@ -166,48 +180,70 @@ msgstr "" "Retorna true se seu argumento é um :c:type:`PyComplexObject`, mas não um " "subtipo de :c:type:`PyComplexObject`. Esta função sempre tem sucesso." -#: ../../c-api/complex.rst:108 +#: ../../c-api/complex.rst:112 msgid "" "Create a new Python complex number object from a C :c:type:`Py_complex` " -"value." +"value. Return ``NULL`` with an exception set on error." msgstr "" -"Cria um novo objeto de número complexo Python a partir de um valor C :c:type:" -"`Py_complex`." - -#: ../../c-api/complex.rst:113 -msgid "Return a new :c:type:`PyComplexObject` object from *real* and *imag*." -msgstr "Retorna um novo objeto :c:type:`PyComplexObject` de *real* e *imag*." +"Cria um novo objeto de número complexo Python a partir de um valor " +"C :c:type:`Py_complex`. Retorna ``NULL`` com uma exceção definida ao ocorrer " +"um erro." #: ../../c-api/complex.rst:118 +msgid "" +"Return a new :c:type:`PyComplexObject` object from *real* and *imag*. Return " +"``NULL`` with an exception set on error." +msgstr "" +"Retorna um novo objeto :c:type:`PyComplexObject` de *real* e *imag*. Retorna " +"``NULL`` com uma exceção definida ao ocorrer um erro." + +#: ../../c-api/complex.rst:124 msgid "Return the real part of *op* as a C :c:expr:`double`." msgstr "Retorna a parte real de *op* como um :c:expr:`double` C." -#: ../../c-api/complex.rst:123 +#: ../../c-api/complex.rst:126 +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 "" +"Em caso de falha, este método retorna ``-1.0`` com uma exceção definida, " +"então deve-se chamar :c:func:`PyErr_Occurred` para verificar se há erros." + +#: ../../c-api/complex.rst:132 msgid "Return the imaginary part of *op* as a C :c:expr:`double`." msgstr "Retorna a parte imaginária de *op* como um :c:expr:`double` C." -#: ../../c-api/complex.rst:128 +#: ../../c-api/complex.rst:137 msgid "Return the :c:type:`Py_complex` value of the complex number *op*." msgstr "Retorna o valor :c:type:`Py_complex` do número complexo *op*." -#: ../../c-api/complex.rst:130 +#: ../../c-api/complex.rst:139 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__`. Upon failure, this " -"method returns ``-1.0`` as a real value." +"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 "" -"Se *op* não é um objeto de número complexo Python, mas tem um método :meth:" -"`~object.__complex__`, este método será primeiro chamado para converter *op* " -"em um objeto de número complexo Python. Se :meth:`!__complex__` não for " -"definido, então ele recorre a :meth:`~object.__float__`. Se :meth:`!" -"__float__` não estiver definido, então ele volta para :meth:`~object." -"__index__`. Em caso de falha, este método retorna ``-1.0`` como um valor " -"real." +"Se *op* não é um objeto de número complexo Python, mas tem um " +"método :meth:`~object.__complex__`, este método será primeiro chamado para " +"converter *op* em um objeto de número complexo Python. Se :meth:`!" +"__complex__` não for definido, então ele recorre " +"a :meth:`~object.__float__`. Se :meth:`!__float__` não estiver definido, " +"então ele volta para :meth:`~object.__index__`." -#: ../../c-api/complex.rst:137 +#: ../../c-api/complex.rst:145 +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 "" +"Em caso de falha, este método retorna :c:type:`Py_complex` " +"com :c:member:`~Py_complex.real` definido para ``-1.0`` e com uma exceção " +"definida, então deve-se chamar :c:func:`PyErr_Occurred` para verificar se há " +"erros." + +#: ../../c-api/complex.rst:149 msgid "Use :meth:`~object.__index__` if available." msgstr "Usa :meth:`~object.__index__`, se disponível." diff --git a/c-api/concrete.po b/c-api/concrete.po index bfd41f3e0..103bc0eee 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Vinicius Gubiani Ferreira , 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -93,7 +91,7 @@ msgstr "Coleções" #: ../../c-api/concrete.rst:91 msgid "Function Objects" -msgstr "Objetos Função" +msgstr "Objetos Function" #: ../../c-api/concrete.rst:102 msgid "Other Objects" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index 4e2f8db09..a2dbc1767 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -1,45 +1,57 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Vinicius Gubiani Ferreira , 2021 -# Alexsandro Matias de Almeida , 2021 -# Leandro Braga , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-08 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Leandro Braga , 2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/contextvars.rst:6 msgid "Context Variables Objects" -msgstr "Objetos de variáveis ​​de contexto" +msgstr "Objetos de variáveis de contexto" #: ../../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.::" +"**changed** to use :c:type:`PyObject` pointers instead " +"of :c:type:`PyContext`, :c:type:`PyContextVar`, " +"and :c:type:`PyContextToken`, e.g.::" msgstr "" "No Python 3.7.1, as assinaturas de todas as APIs C de variáveis de contexto " -"foram **alteradas** para usar ponteiros :c:type:`PyObject` em vez de :c:type:" -"`PyContext`, :c:type:`PyContextVar` e :c:type:`PyContextToken`. Por exemplo::" +"foram **alteradas** para usar ponteiros :c:type:`PyObject` em vez " +"de :c:type:`PyContext`, :c:type:`PyContextVar` e :c:type:`PyContextToken`. " +"Por exemplo::" + +#: ../../c-api/contextvars.rst:20 +msgid "" +"// in 3.7.0:\n" +"PyContext *PyContext_New(void);\n" +"\n" +"// in 3.7.1+:\n" +"PyObject *PyContext_New(void);" +msgstr "" +"// no 3.7.0:\n" +"PyContext *PyContext_New(void);\n" +"\n" +"// no 3.7.1+:\n" +"PyObject *PyContext_New(void);" #: ../../c-api/contextvars.rst:26 msgid "See :issue:`34762` for more details." @@ -60,8 +72,8 @@ msgstr "" msgid "" "The C structure used to represent a :class:`contextvars.ContextVar` object." msgstr "" -"A estrutura C usada para representar um objeto :class:`contextvars." -"ContextVar`." +"A estrutura C usada para representar um " +"objeto :class:`contextvars.ContextVar`." #: ../../c-api/contextvars.rst:43 msgid "The C structure used to represent a :class:`contextvars.Token` object." @@ -214,9 +226,9 @@ msgstr "" #: ../../c-api/contextvars.rst:136 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." +"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 "" "Redefine o estado da variável de contexto *var* para o estado que anterior " "a :c:func:`PyContextVar_Set` que retornou o *token* foi chamado. Esta função " diff --git a/c-api/conversion.po b/c-api/conversion.po index 11ff72dee..267382e8e 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-02 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -29,27 +29,27 @@ msgstr "Conversão e formação de strings" #: ../../c-api/conversion.rst:8 msgid "Functions for number conversion and formatted string output." -msgstr "Funções para conversão de números e saída formatada de Strings." +msgstr "Funções para conversão de números e saída formatada de strings." #: ../../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)`." +"*format* and the extra arguments. See the Unix man " +"page :manpage:`snprintf(3)`." msgstr "" "Saída não superior a *size* bytes para *str* de acordo com a string de " -"formato *format* e os argumentos extras. Veja a página man do Unix :manpage:" -"`snprintf(3)`." +"formato *format* e os argumentos extras. Veja a página man do " +"Unix :manpage:`snprintf(3)`." #: ../../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)`." +"*format* and the variable argument list *va*. Unix man " +"page :manpage:`vsnprintf(3)`." msgstr "" -"Saída não superior a *size* bytes para *str* de acordo com o formato string " -"*format* e a variável argumento de lista *va*. Página man do Unix :manpage:" -"`vsnprintf(3)`." +"Saída não superior a *size* bytes para *str* de acordo com o string de " +"formato *format* e a variável argumento de lista *va*. Página man do " +"Unix :manpage:`vsnprintf(3)`." #: ../../c-api/conversion.rst:23 msgid "" @@ -58,10 +58,10 @@ msgid "" "is to guarantee consistent behavior in corner cases, which the Standard C " "functions do not." msgstr "" -":c:func:`PyOS_snprintf` e :c:func:`PyOS_vsnprintf` envolvem as funções :c:" -"func:`snprintf` e :c:func:`vsnprintf` da biblioteca Standard C. Seu objetivo " -"é garantir um comportamento consistente em casos extremos, o que as funções " -"do Standard C não garantem." +":c:func:`PyOS_snprintf` e :c:func:`PyOS_vsnprintf` envolvem as " +"funções :c:func:`snprintf` e :c:func:`vsnprintf` da biblioteca Standard C. " +"Seu objetivo é garantir um comportamento consistente em casos extremos, o " +"que as funções do Standard C não garantem." #: ../../c-api/conversion.rst:28 msgid "" @@ -130,6 +130,9 @@ msgid "" "long` value according to the given ``base``, which must be between ``2`` and " "``36`` inclusive, or be the special value ``0``." msgstr "" +"Converte a parte inicial da string em ``str`` para um " +"valor :c:expr:`unsigned long` de acordo com a ``base`` fornecida, que deve " +"estar entre ``2`` e ``36`` inclusive, ou ser o valor especial ``0``." #: ../../c-api/conversion.rst:57 msgid "" @@ -139,18 +142,27 @@ msgid "" "(inclusive). If ``ptr`` is non-``NULL`` it will contain a pointer to the " "end of the scan." msgstr "" +"Espaços em branco iniciais e diferenciação entre caracteres maiúsculos e " +"minúsculos são ignorados. Se ``base`` for zero, procura um ``0b``, ``0o`` ou " +"``0x`` inicial para informar qual base. Se estes estiverem ausentes, o " +"padrão é ``10``. Base deve ser 0 ou entre 2 e 36 (inclusive). Se ``ptr`` não " +"for ``NULL``, conterá um ponteiro para o fim da varredura." #: ../../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." +"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 "" +"Se o valor convertido ficar fora do intervalo do tipo de retorno " +"correspondente, ocorrerá um erro de intervalo (:c:data:`errno` é definido " +"como :c:macro:`!ERANGE`) e :c:macro:`!ULONG_MAX` será retornado. Se nenhuma " +"conversão puder ser realizada, ``0`` será retornado." #: ../../c-api/conversion.rst:68 msgid "See also the Unix man page :manpage:`strtoul(3)`." -msgstr "" +msgstr "Veja também a página man do Unix :manpage:`strtoul(3)`." #: ../../c-api/conversion.rst:75 msgid "" @@ -158,16 +170,21 @@ msgid "" "according to the given ``base``, which must be between ``2`` and ``36`` " "inclusive, or be the special value ``0``." msgstr "" +"Converte a parte inicial da string em ``str`` para um valor :c:expr:`long` " +"de acordo com a ``base`` fornecida, que deve estar entre ``2`` e ``36`` " +"inclusive, ou ser o valor especial ``0``." #: ../../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 "" +"O mesmo que :c:func:`PyOS_strtoul`, mas retorna um valor :c:expr:`long` " +"e :c:macro:`LONG_MAX` em caso de estouro." #: ../../c-api/conversion.rst:82 msgid "See also the Unix man page :manpage:`strtol(3)`." -msgstr "" +msgstr "Veja também a página man do Unix :manpage:`strtol(3)`." #: ../../c-api/conversion.rst:89 msgid "" @@ -185,13 +202,13 @@ 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." +"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 "" -"Se ``endptr`` for ``NULL``, converte a string inteira. Levanta :exc:" -"`ValueError` e retorna ``-1.0`` se a string não for uma representação válida " -"de um número de ponto flutuante." +"Se ``endptr`` for ``NULL``, converte a string inteira. " +"Levanta :exc:`ValueError` e retorna ``-1.0`` se a string não for uma " +"representação válida de um número de ponto flutuante." #: ../../c-api/conversion.rst:99 msgid "" @@ -201,11 +218,11 @@ msgid "" "number, set ``*endptr`` to point to the beginning of the string, raise " "ValueError, and return ``-1.0``." msgstr "" -"Se endptr não for ``NULL``, converte o máximo possível da string e defina " +"Se endptr não for ``NULL``, converte o máximo possível da string e define " "``*endptr`` para apontar para o primeiro caractere não convertido. Se nenhum " "segmento inicial da string for a representação válida de um número de ponto " "flutuante, define ``*endptr`` para apontar para o início da string, levanta " -"ValueError e retorne ``-1.0``." +"ValueError e retorna ``-1.0``." #: ../../c-api/conversion.rst:106 msgid "" @@ -222,7 +239,7 @@ msgstr "" "plataformas), então se ``overflow_exception`` for ``NULL`` retorna " "``Py_HUGE_VAL`` (com um sinal apropriado) e não define nenhuma exceção. Caso " "contrário, ``overflow_exception`` deve apontar para um objeto de exceção " -"Python; levantar essa exceção e retornar ``-1.0``. Em ambos os casos, define " +"Python; levanta essa exceção e retorna ``-1.0``. Em ambos os casos, define " "``*endptr`` para apontar para o primeiro caractere após o valor convertido." #: ../../c-api/conversion.rst:114 @@ -238,7 +255,7 @@ msgid "" "Convert a :c:expr:`double` *val* to a string using supplied *format_code*, " "*precision*, and *flags*." msgstr "" -"Converte um :c:expr:`double` *val* para uma string usando *format_code*, " +"Converte um *val* :c:expr:`double` para uma string usando *format_code*, " "*precision* e *flags* fornecidos." #: ../../c-api/conversion.rst:126 @@ -248,9 +265,9 @@ msgid "" "ignored. The ``'r'`` format code specifies the standard :func:`repr` format." msgstr "" "*format_code* deve ser um entre ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " -"``'G'`` ou ``'r'``. Para ``'r'``, a precisão *precision* fornecida deve ser " -"0 e é ignorada. O código de formato ``'r'`` especifica o formato padrão de :" -"func:`repr`." +"``'G'`` ou ``'r'``. Para ``'r'``, a precisão *precision* fornecida deve ser " +"0 e é ignorada. O código de formato ``'r'`` especifica o formato padrão " +"de :func:`repr`." #: ../../c-api/conversion.rst:131 msgid "" @@ -313,8 +330,8 @@ msgid "" "identically to :c:func:`!strcmp` except that it ignores the case." msgstr "" "Comparação de strings sem diferença entre maiúsculas e minúsculas. A função " -"funciona quase de forma idêntica a :c:func:`!strcmp` exceto que ignora o " -"caso." +"funciona quase de forma idêntica a :c:func:`!strcmp` exceto que ignora a " +"diferença entre maiúsculas e minúsculas." #: ../../c-api/conversion.rst:163 msgid "" @@ -322,5 +339,5 @@ msgid "" "identically to :c:func:`!strncmp` except that it ignores the case." msgstr "" "Comparação de strings sem diferença entre maiúsculas e minúsculas. A função " -"funciona quase de forma idêntica a :c:func:`!strncmp` exceto que ignora o " -"caso." +"funciona quase de forma idêntica a :c:func:`!strncmp` exceto que ignora a " +"diferença entre maiúsculas e minúsculas." diff --git a/c-api/coro.po b/c-api/coro.po index f244db350..4e3503fdc 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2021\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/datetime.po b/c-api/datetime.po index b3bbffc96..dbd8e16f1 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Adjamilton Júnior , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Rafael Fontenelle , 2022 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2022\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -33,61 +31,87 @@ msgstr "Objetos DateTime" 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 "" +"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 "" +"Vários objetos de data e hora são fornecidos pelo módulo :mod:`datetime`. " +"Antes de usar qualquer uma dessas funções, o arquivo de " +"cabeçalho :file:`datetime.h` deve ser incluído na sua fonte (observe que " +"isso não é incluído por :file:`Python.h`) e a macro :c:macro:`!" +"PyDateTime_IMPORT` deve ser chamada, geralmente como parte da função de " +"inicialização do módulo. A macro coloca um ponteiro para uma estrutura C em " +"uma variável estática, :c:data:`!PyDateTimeAPI`, usada pelas macros a seguir." #: ../../c-api/datetime.rst:18 msgid "This subtype of :c:type:`PyObject` represents a Python date object." msgstr "" +"Esta é uma instância de :c:type:`PyObject` representando o objeto data do " +"Python." #: ../../c-api/datetime.rst:22 msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." msgstr "" +"Esta é uma instância de :c:type:`PyObject` representando o objeto datetime " +"do Python." #: ../../c-api/datetime.rst:26 msgid "This subtype of :c:type:`PyObject` represents a Python time object." msgstr "" +"Esta é uma instância de :c:type:`PyObject` representando o objeto hora do " +"Python." #: ../../c-api/datetime.rst:30 msgid "" "This subtype of :c:type:`PyObject` represents the difference between two " "datetime values." msgstr "" +"Esta é uma instância de :c:type:`PyObject` representando a diferença entre " +"dois valores de datetime." #: ../../c-api/datetime.rst:34 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 "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo data do Python; é " +"o mesmo objeto que :class:`datetime.date` na camada de Python." #: ../../c-api/datetime.rst:39 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 "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo datetime do " +"Python; é o mesmo objeto que :class:`datetime.datetime` na camada de Python." #: ../../c-api/datetime.rst:44 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 "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo hora do Python; é " +"o mesmo objeto que :class:`datetime.time` na camada de Python." #: ../../c-api/datetime.rst:49 msgid "" "This instance of :c:type:`PyTypeObject` represents Python type for the " -"difference between two datetime values; it is the same object as :class:" -"`datetime.timedelta` in the Python layer." +"difference between two datetime values; it is the same object " +"as :class:`datetime.timedelta` in the Python layer." msgstr "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo Python para a " +"diferença entre dois valores de datetime; é o mesmo objeto " +"que :class:`datetime.timedelta` na camada de Python." #: ../../c-api/datetime.rst:55 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 "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo fuso horário do " +"Python; é o mesmo objeto que :class:`datetime.tzinfo` na camada de Python." #: ../../c-api/datetime.rst:59 msgid "Macro for access to the UTC singleton:" @@ -95,8 +119,8 @@ msgstr "Macro para acesso ao singleton UTC:" #: ../../c-api/datetime.rst:63 msgid "" -"Returns the time zone singleton representing UTC, the same object as :attr:" -"`datetime.timezone.utc`." +"Returns the time zone singleton representing UTC, the same object " +"as :attr:`datetime.timezone.utc`." msgstr "" "Retorna um singleton do fuso horário representando o UTC, o mesmo objeto " "que :attr:`datetime.timezone.utc`." @@ -111,14 +135,17 @@ msgid "" "of :c:data:`!PyDateTime_DateType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_DateType` ou um " +"subtipo de :c:data:`!PyDateTime_DateType`. *ob* não deve ser ``NULL``. Esta " +"função sempre tem sucesso." #: ../../c-api/datetime.rst:80 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -"Retorna true se *ob* for do tipo :c:data:`PyDateTime_DateType`. *ob* não " -"deve ser ``NULL``. Esta função sempre tem sucesso." +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_DateType`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:86 msgid "" @@ -126,14 +153,17 @@ msgid "" "subtype of :c:data:`!PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " "This function always succeeds." msgstr "" +"Retorna verdadeiro se *ob* é do tipo :c:data:`PyDateTime_DateTimeType` ou um " +"subtipo de :c:data:`!PyDateTime_DateTimeType`. *ob* não deve ser ``NULL``. " +"Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:93 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" -"Retorna true se *ob* for do tipo :c:data:`PyDateTime_DateTimeType`. *ob* não " -"deve ser ``NULL``. Esta função sempre tem sucesso." +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_DateTimeType`. " +"*ob* não deve ser ``NULL``. Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:99 msgid "" @@ -141,14 +171,17 @@ msgid "" "of :c:data:`!PyDateTime_TimeType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +"Retorna verdadeiro se *ob* é do tipo :c:data:`PyDateTime_TimeType` ou um " +"subtipo de :c:data:`!PyDateTime_TimeType`. *ob* não deve ser ``NULL``. Esta " +"função sempre tem sucesso." #: ../../c-api/datetime.rst:106 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -"Retorna true se *ob* for do tipo :c:data:`PyDateTime_TimeType`. *ob* não " -"deve ser ``NULL``. Esta função sempre tem sucesso." +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_TimeType`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:112 msgid "" @@ -156,14 +189,17 @@ msgid "" "of :c:data:`!PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_DeltaType` ou um " +"subtipo de :c:data:`!PyDateTime_DeltaType`. *ob* não pode ser ``NULL``. Esta " +"função sempre tem sucesso." #: ../../c-api/datetime.rst:119 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be ``NULL``. This function always succeeds." msgstr "" -"Retorna true se *ob* for do tipo :c:data:`PyDateTime_DeltaType`. *ob* não " -"deve ser ``NULL``. Esta função sempre tem sucesso." +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_DeltaType`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:125 msgid "" @@ -171,14 +207,17 @@ msgid "" "of :c:data:`!PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_TZInfoType` ou um " +"subtipo de :c:data:`!PyDateTime_TZInfoType`. *ob* não pode ser ``NULL``. " +"Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:132 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be ``NULL``. This function always succeeds." msgstr "" -"Retorna true se *ob* for do tipo :c:data:`PyDateTime_TZInfoType`. *ob* não " -"deve ser ``NULL``. Esta função sempre tem sucesso." +"Retorna verdadeiro se *ob* for do tipo :c:data:`PyDateTime_TZInfoType`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." #: ../../c-api/datetime.rst:136 msgid "Macros to create objects:" @@ -254,10 +293,14 @@ msgstr "" #: ../../c-api/datetime.rst:195 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:" +"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 para extrair campos de objetos *date*. O argumento deve ser uma " +"instância de :c:type:`PyDateTime_Date`, inclusive subclasses " +"(como :c:type:`PyDateTime_DateTime`). O argumento não deve ser ``NULL``, e o " +"tipo não é verificado:" #: ../../c-api/datetime.rst:202 msgid "Return the year, as a positive int." @@ -277,6 +320,9 @@ msgid "" "instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " "argument must not be ``NULL``, and the type is not checked:" msgstr "" +"Macros para extrair campos de objetos *datetime*. O argumento deve ser uma " +"instância de :c:type:`PyDateTime_DateTime`, inclusive subclasses. O " +"argumento não deve ser ``NULL``, e o tipo não é verificado:" #: ../../c-api/datetime.rst:221 ../../c-api/datetime.rst:259 msgid "Return the hour, as an int from 0 through 23." @@ -308,6 +354,9 @@ msgid "" "instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" +"Macros para extrair campos de objetos *time*. O argumento deve ser uma " +"instância de :c:type:`PyDateTime_Time`, inclusive subclasses. O argumento " +"não deve ser ``NULL``, e o tipo não é verificado:" #: ../../c-api/datetime.rst:291 msgid "" @@ -315,6 +364,9 @@ msgid "" "instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" +"Macros para extrair campos de objetos *time delta*. O argumento deve ser uma " +"instância de :c:type:`PyDateTime_Delta`, inclusive subclasses. O argumento " +"não deve ser ``NULL``, e o tipo não é verificado:" #: ../../c-api/datetime.rst:297 msgid "Return the number of days, as an int from -999999999 to 999999999." @@ -335,16 +387,17 @@ msgstr "Macros para a conveniência de módulos implementando a API de DB:" #: ../../c-api/datetime.rst:320 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " -"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." +"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." msgstr "" -"Cria e retorna um novo objeto :class:`datetime.datetime`, com uma tupla de " -"argumentos adequada para passar para :meth:`datetime.datetime." -"fromtimestamp()`." +"Cria e retorna um novo objeto :class:`datetime.datetime` dado uma tupla de " +"argumentos que possa ser passada ao " +"método :meth:`datetime.datetime.fromtimestamp`." #: ../../c-api/datetime.rst:326 msgid "" "Create and return a new :class:`datetime.date` object given an argument " -"tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." +"tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." msgstr "" -"Cria e retorna um novo objeto :class:`datetime.date`, com uma tupla de " -"argumentos adequada para passar para :meth:`datetime.date.fromtimestamp()`." +"Cria e retorna um novo objeto :class:`datetime.date` dado uma tupla de " +"argumentos que possa ser passada ao " +"método :meth:`datetime.date.fromtimestamp`." diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 9c4d40e17..598032a46 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -1,32 +1,31 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Rafael Fontenelle , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2021\n" +"POT-Creation-Date: 2025-11-17 15:56+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/descriptor.rst:6 msgid "Descriptor Objects" -msgstr "Objetos Descritores" +msgstr "Objetos descritores" #: ../../c-api/descriptor.rst:8 msgid "" diff --git a/c-api/dict.po b/c-api/dict.po index 187b8e7e0..89c48798b 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -1,28 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Aline Balogh , 2021 -# felipe caridade fernandes , 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -95,47 +92,47 @@ msgstr "Retorna um novo dicionário que contém o mesmo chave-valor como *p*." #: ../../c-api/dict.rst:65 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*." +"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 "" -"Insere *val* no dicionário *p* com a tecla *key*. *key* deve ser :term:" -"`hasheável `; se não for, :exc:`TypeError` será levantada. Retorna " -"``0`` em caso de sucesso ou ``-1`` em caso de falha. Esta função *não* rouba " -"uma referência a *val*." +"Insere *val* no dicionário *p* com a tecla *key*. *key* deve " +"ser :term:`hasheável `; se não for, :exc:`TypeError` será " +"levantada. Retorna ``0`` em caso de sucesso ou ``-1`` em caso de falha. Esta " +"função *não* rouba uma referência a *val*." #: ../../c-api/dict.rst:73 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*`." +"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 "" "É o mesmo que :c:func:`PyDict_SetItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/dict.rst:80 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." +"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 "" -"Remove a entrada no dicionário *p* com a chave *key*. *key* deve ser :term:" -"`hasheável`; se não for, :exc:`TypeError` é levantada. Se *key* não estiver " -"no dicionário, :exc:`KeyError` é levantada. Retorna ``0`` em caso de sucesso " -"ou ``-1`` em caso de falha." +"Remove a entrada no dicionário *p* com a chave *key*. *key* deve " +"ser :term:`hasheável`; se não for, :exc:`TypeError` é levantada. Se *key* " +"não estiver no dicionário, :exc:`KeyError` é levantada. Retorna ``0`` em " +"caso de sucesso ou ``-1`` em caso de falha." #: ../../c-api/dict.rst:88 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*`." +"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 "" "É o mesmo que :c:func:`PyDict_DelItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/dict.rst:95 msgid "" @@ -148,20 +145,20 @@ msgstr "" #: ../../c-api/dict.rst:100 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." +"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 "" -"Exceções que ocorrem ao chamar os métodos :meth:`~object.__hash__` e :meth:" -"`~object.__eq__` são ignoradas silenciosamente. Ao invés disso, use a " -"função :c:func:`PyDict_GetItemWithError`." +"Exceções que ocorrem ao chamar os métodos :meth:`~object.__hash__` " +"e :meth:`~object.__eq__` são ignoradas silenciosamente. Ao invés disso, use " +"a função :c:func:`PyDict_GetItemWithError`." #: ../../c-api/dict.rst:104 msgid "" "Calling this API without :term:`GIL` held had been allowed for historical " "reason. It is no longer allowed." msgstr "" -"Chamar esta API sem :term:`GIL` retido foi permitido por motivos históricos. " +"Chamar esta API sem :term:`GIL` retida era permitido por motivos históricos. " "Não é mais permitido." #: ../../c-api/dict.rst:111 @@ -176,26 +173,27 @@ msgstr "" #: ../../c-api/dict.rst:119 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*`." +"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 "" "É o mesmo que :c:func:`PyDict_GetItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/dict.rst:125 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." +"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 "" -"Exceções que ocorrem ao chamar os métodos :meth:`~object.__hash__` e :meth:" -"`~object.__eq__` ou ao criar objetos temporários da classe :class:`str` são " -"ignoradas silenciosamente. Ao invés disso, prefira usar a função :c:func:" -"`PyDict_GetItemWithError` com sua própria *key* de :c:func:" -"`PyUnicode_FromString`." +"Exceções que ocorrem ao chamar os métodos :meth:`~object.__hash__` " +"e :meth:`~object.__eq__` ou ao criar objetos temporários da " +"classe :class:`str` são ignoradas silenciosamente. Ao invés disso, prefira " +"usar a função :c:func:`PyDict_GetItemWithError` com sua própria *key* " +"de :c:func:`PyUnicode_FromString`." #: ../../c-api/dict.rst:134 msgid "" @@ -242,23 +240,23 @@ msgstr "" #: ../../c-api/dict.rst:168 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 "" -"Itera todos os pares de valores-chave no dicionário *p*. O :c:type:" -"`Py_ssize_t` referido por *ppos* deve ser inicializado para ``0`` antes da " -"primeira chamada para esta função para iniciar a iteração; a função retorna " -"true para cada par no dicionário e false quando todos os pares forem " -"relatados. Os parâmetros *pkey* e *pvalue* devem apontar para variáveis de :" -"c:expr:`PyObject*` que serão preenchidas com cada chave e valor, " +"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 "" +"Itera todos os pares de valores-chave no dicionário *p*. " +"O :c:type:`Py_ssize_t` referido por *ppos* deve ser inicializado para ``0`` " +"antes da primeira chamada para esta função para iniciar a iteração; a função " +"retorna true para cada par no dicionário e false quando todos os pares forem " +"relatados. Os parâmetros *pkey* e *pvalue* devem apontar para variáveis " +"de :c:expr:`PyObject*` que serão preenchidas com cada chave e valor, " "respectivamente, ou podem ser ``NULL``. Todas as referências retornadas por " "meio deles são emprestadas. *ppos* não deve ser alterado durante a iteração. " "Seu valor representa deslocamentos dentro da estrutura do dicionário interno " @@ -268,6 +266,24 @@ msgstr "" msgid "For example::" msgstr "Por exemplo::" +#: ../../c-api/dict.rst:181 +msgid "" +"PyObject *key, *value;\n" +"Py_ssize_t pos = 0;\n" +"\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" /* do something interesting with the values... */\n" +" ...\n" +"}" +msgstr "" +"PyObject *key, *value;\n" +"Py_ssize_t pos = 0;\n" +"\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" /* fazer algo de interessante com os valores... */\n" +" ...\n" +"}" + #: ../../c-api/dict.rst:189 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " @@ -278,6 +294,44 @@ msgstr "" "modificar os valores das chaves à medida que você itera no dicionário, mas " "apenas enquanto o conjunto de chaves não mudar. Por exemplo::" +#: ../../c-api/dict.rst:193 +msgid "" +"PyObject *key, *value;\n" +"Py_ssize_t pos = 0;\n" +"\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" long i = PyLong_AsLong(value);\n" +" if (i == -1 && PyErr_Occurred()) {\n" +" return -1;\n" +" }\n" +" PyObject *o = PyLong_FromLong(i + 1);\n" +" if (o == NULL)\n" +" return -1;\n" +" if (PyDict_SetItem(self->dict, key, o) < 0) {\n" +" Py_DECREF(o);\n" +" return -1;\n" +" }\n" +" Py_DECREF(o);\n" +"}" +msgstr "" +"PyObject *key, *value;\n" +"Py_ssize_t pos = 0;\n" +"\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" long i = PyLong_AsLong(value);\n" +" if (i == -1 && PyErr_Occurred()) {\n" +" return -1;\n" +" }\n" +" PyObject *o = PyLong_FromLong(i + 1);\n" +" if (o == NULL)\n" +" return -1;\n" +" if (PyDict_SetItem(self->dict, key, o) < 0) {\n" +" Py_DECREF(o);\n" +" return -1;\n" +" }\n" +" Py_DECREF(o);\n" +"}" + #: ../../c-api/dict.rst:214 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " @@ -288,23 +342,23 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" "Itera sobre o objeto de mapeamento *b* adicionando pares de valores-chave ao " -"dicionário *a*. *b* pode ser um dicionário, ou qualquer objeto que suporte :" -"c:func:`PyMapping_Keys` e :c:func:`PyObject_GetItem`. Se *override* for " -"verdadeiro, os pares existentes em *a* serão substituídos se uma chave " +"dicionário *a*. *b* pode ser um dicionário, ou qualquer objeto que " +"suporte :c:func:`PyMapping_Keys` e :c:func:`PyObject_GetItem`. Se *override* " +"for verdadeiro, os pares existentes em *a* serão substituídos se uma chave " "correspondente for encontrada em *b*, caso contrário, os pares serão " "adicionados apenas se não houver uma chave correspondente em *a*. Retorna " "``0`` em caso de sucesso ou ``-1`` se uma exceção foi levantada." #: ../../c-api/dict.rst:224 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 " +"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 "" -"É o mesmo que ``PyDict_Merge(a, b, 1)`` em C, e é semelhante a ``a." -"update(b)`` em Python, exceto que :c:func:`PyDict_Update` não cai na " +"É o mesmo que ``PyDict_Merge(a, b, 1)`` em C, e é semelhante a " +"``a.update(b)`` em Python, exceto que :c:func:`PyDict_Update` não cai na " "iteração em uma sequência de pares de valores de chave se o segundo " "argumento não tiver o atributo \"keys\". Retorna ``0`` em caso de sucesso ou " "``-1`` se uma exceção foi levantada." @@ -324,6 +378,18 @@ msgstr "" "vence. Retorne ``0`` em caso de sucesso ou ``-1`` se uma exceção foi " "levantada. Python equivalente (exceto para o valor de retorno)::" +#: ../../c-api/dict.rst:240 +msgid "" +"def PyDict_MergeFromSeq2(a, seq2, override):\n" +" for key, value in seq2:\n" +" if override or key not in a:\n" +" a[key] = value" +msgstr "" +"def PyDict_MergeFromSeq2(a, seq2, override):\n" +" for key, value in seq2:\n" +" if override or key not in a:\n" +" a[key] = value" + #: ../../c-api/dict.rst:247 msgid "" "Register *callback* as a dictionary watcher. Return a non-negative integer " @@ -332,24 +398,24 @@ msgid "" "exception." msgstr "" "Registra *callback* como um observador de dicionário. Retorna um ID inteiro " -"não negativo que deve ser passado para futuras chamadas a :c:func:" -"`PyDict_Watch`. Em caso de erro (por exemplo, não há mais IDs de observador " -"disponíveis), retorna ``-1`` e define uma exceção." +"não negativo que deve ser passado para futuras chamadas " +"a :c:func:`PyDict_Watch`. Em caso de erro (por exemplo, não há mais IDs de " +"observador disponíveis), retorna ``-1`` e define uma exceção." #: ../../c-api/dict.rst:256 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.)" +"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 "" -"Limpa o observador identificado por *watcher_id* retornado anteriormente de :" -"c:func:`PyDict_AddWatcher`. Retorna ``0`` em caso de sucesso, ``-1`` em caso " -"de erro (por exemplo, se o *watcher_id* fornecido nunca foi registrado)." +"Limpa o observador identificado por *watcher_id* retornado anteriormente " +"de :c:func:`PyDict_AddWatcher`. Retorna ``0`` em caso de sucesso, ``-1`` em " +"caso de erro (por exemplo, se o *watcher_id* fornecido nunca foi registrado)." #: ../../c-api/dict.rst:264 msgid "" -"Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:" -"func:`PyDict_AddWatcher` will be called when *dict* is modified or " +"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 "" "Marca o dicionário *dict* como observado. A função de retorno concedida a " @@ -449,12 +515,13 @@ msgstr "" #: ../../c-api/dict.rst:316 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``." +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" -"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``; essa " -"exceção será impressa como uma exceção não reprovável usando :c:func:" -"`PyErr_WriteUnraisable`. Caso contrário, deverá retornar ``0``." +"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``. Essa " +"exceção será exibida como uma exceção não levantável " +"usando :c:func:`PyErr_WriteUnraisable`. Caso contrário, deverá retornar " +"``0``." #: ../../c-api/dict.rst:320 msgid "" @@ -468,7 +535,7 @@ msgstr "" "de retorno. Nesse caso, a função de retorno deve retornar ``0`` com a mesma " "exceção ainda definida. Isso significa que a função de retorno não pode " "chamar nenhuma outra API que possa definir uma exceção, a menos que salve e " -"limpe o estado da exceção primeiro e o restaure antes de retornar." +"limpe o estado da exceção primeiro e restaure a exceção antes de retornar." #: ../../c-api/dict.rst:8 msgid "object" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index e16171823..53c8c9b1e 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -1,42 +1,34 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Alexsandro Matias de Almeida , 2021 -# Misael borges , 2021 -# Richard Nixon , 2021 -# Renan Lopes , 2021 -# a76d6fb6142d7607ab0526dcbddb02d7_7bf0da0 <3b5fb0f281c8dfb4c0170f2ee2a6cfcf_843623>, 2021 -# i17obot , 2022 -# Marco Rougeth , 2023 -# Flávio Neves, 2023 -# Claudio Rogerio Carvalho Filho , 2023 -# Leonardo Rodrigues da Costa, 2023 -# Guilherme Alves da Silva, 2023 -# Rafael Fontenelle , 2024 +# Joao Roccella , 2025 +# Gustavo Reis, 2025 +# Rafael Fontenelle , 2025 +# willian ohara, 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-04 01:27+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-11 20:24+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: willian ohara, 2026\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/exceptions.rst:8 msgid "Exception Handling" -msgstr "Manipulando Exceções" +msgstr "Tratamento de exceções" #: ../../c-api/exceptions.rst:10 msgid "" @@ -52,13 +44,13 @@ msgid "" msgstr "" "As funções descritas nesse capítulo permitem você tratar e gerar exceções em " "Python. É importante entender alguns princípios básicos no tratamento de " -"exceção no Python. Funciona de forma parecida com a variável POSIX :c:data:" -"`errno`: existe um indicador global (por thread) do último erro ocorrido. A " -"maioria das funções da API C não limpa isso com êxito, mas indica a causa do " -"erro na falha. A maioria das funções da API retorna um indicador de erro, " -"geralmente, ``NULL`` se eles devem retornar um ponteiro, ou ``-1`` se " -"retornarem um inteiro (exceção: as funções ``PyArg_*`` retornam ``1`` para " -"sucesso e ``0`` para falha)." +"exceções no Python. Funciona de forma parecida com a variável " +"POSIX :c:data:`errno`: existe um indicador global (por thread) do último " +"erro ocorrido. A maioria das funções da API C não o zera ao obter sucesso, " +"mas o define para indicar a causa do erro ao falhar. A maioria das funções " +"da API retorna um indicador de erro, geralmente, ``NULL`` se eles devem " +"retornar um ponteiro, ou ``-1`` se retornarem um inteiro (exceção: as " +"funções ``PyArg_*`` retornam ``1`` para sucesso e ``0`` para falha)." #: ../../c-api/exceptions.rst:20 msgid "" @@ -68,8 +60,8 @@ msgid "" "forbidden, for example you can't have a non-``NULL`` traceback if the " "exception type is ``NULL``)." msgstr "" -"Concretamente, o indicador de erro consiste em três ponteiros de objeto: o " -"tipo da exceção, o valor da exceção e o objeto de traceback. Qualquer um " +"De forma concreta, o indicador de erro consiste em três ponteiros de objeto: " +"o tipo da exceção, o valor da exceção e o objeto de traceback. Qualquer um " "desses ponteiros pode ser ``NULL`` se não definido (embora algumas " "combinações sejam proibidas, por exemplo, você não pode ter um retorno não " "``NULL`` se o tipo de exceção for ``NULL``)." @@ -99,14 +91,14 @@ msgstr "" #: ../../c-api/exceptions.rst:37 msgid "" -"The error indicator is **not** the result of :func:`sys.exc_info()`. The " +"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 "" -"O indicador de erro **not** é resultado de :func:`sys.exc_info()`. O " -"primeiro corresponde a uma exceção que ainda não foi capturada (e, portanto, " -"ainda está se propagando), enquanto o segundo retorna uma exceção após ser " +"O indicador de erro **não** é resultado de :func:`sys.exc_info`. O primeiro " +"corresponde a uma exceção que ainda não foi capturada (e, portanto, ainda " +"está se propagando), enquanto o segundo retorna uma exceção após ser " "capturada (e, portanto, parou de se propagar)." #: ../../c-api/exceptions.rst:44 @@ -128,6 +120,10 @@ msgid "" "printed and the Python process will exit with the error code specified by " "the ``SystemExit`` instance." msgstr "" +"Exibe um traceback padrão para ``sys.stderr`` e limpe o indicador de erro. " +"**A menos que** o erro seja um ``SystemExit``, nesse caso, nenhum traceback " +"será impresso e o processo Python será encerrado com o código de erro " +"especificado pela instância ``SystemExit``." #: ../../c-api/exceptions.rst:60 msgid "" @@ -141,14 +137,20 @@ msgstr "" 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." +"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 "" +"Se *set_sys_last_vars* for diferente de zero, a " +"variável :data:`sys.last_exc` será definida com a exceção exibida. Para " +"manter a retrocompatibilidade, as variáveis " +"descontinuadas :data:`sys.last_type`, :data:`sys.last_value` " +"e :data:`sys.last_traceback` também serão definidas com o tipo, valor e " +"traceback dessa exceção, respectivamente." #: ../../c-api/exceptions.rst:69 msgid "The setting of :data:`sys.last_exc` was added." -msgstr "" +msgstr "A configuração de :data:`sys.last_exc` foi adicionada." #: ../../c-api/exceptions.rst:75 msgid "Alias for ``PyErr_PrintEx(1)``." @@ -168,6 +170,10 @@ msgid "" "raise the exception. It is used, for example, when an exception occurs in " "an :meth:`~object.__del__` method." msgstr "" +"Esta função utilitária imprime uma mensagem de aviso para ``sys.stderr`` " +"quando uma exceção foi definida, mas é impossível para o interpretador " +"realmente gerar a exceção. É usada, por exemplo, quando ocorre uma exceção " +"em um método :meth:`~object.__del__`." #: ../../c-api/exceptions.rst:88 msgid "" @@ -176,6 +182,10 @@ msgid "" "*obj* will be printed in the warning message. If *obj* is ``NULL``, only the " "traceback is printed." msgstr "" +"A função é chamada com um único argumento *obj* que identifica o contexto em " +"que ocorreu a exceção não gerável. Se possível, o repr de *obj* será " +"impresso na mensagem de aviso. Se *obj* for ``NULL``, apenas o traceback " +"será impresso." #: ../../c-api/exceptions.rst:93 msgid "An exception must be set when calling this function." @@ -196,10 +206,12 @@ msgid "" "Print the standard traceback display of ``exc`` to ``sys.stderr``, including " "chained exceptions and notes." msgstr "" +"Imprime a exibição padrão do traceback de ``exc`` em ``sys.stderr``, " +"incluindo as exceções encadeadas e notas." #: ../../c-api/exceptions.rst:110 msgid "Raising exceptions" -msgstr "Lançando exceções" +msgstr "Levantando exceções" #: ../../c-api/exceptions.rst:112 msgid "" @@ -219,6 +231,11 @@ msgid "" "reference` to it (e.g. with :c:func:`Py_INCREF`). The second argument is an " "error message; it is decoded from ``'utf-8'``." msgstr "" +"Esse é o modo mais comum de definir o indicador de erro. O primeiro " +"argumento especifica o tipo da exceção; é normalmente uma das exceções " +"padrão, como :c:data:`PyExc_RuntimeError`. Você não precisa criar um " +"novo :term:`strong reference` para ela (como em :c:func:`Py_INCREF`). O " +"segundo argumento é uma mensagem de erro; ela é codificada com ``'utf-8'``." #: ../../c-api/exceptions.rst:128 msgid "" @@ -232,9 +249,14 @@ msgstr "" 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." +"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 "" +"Essa função define o indicador de erro e retorna ``NULL``. *exception* deve " +"ser uma classe Python de exceção. O *format* e parâmetros subsequentes " +"ajudam a formatar a mensagem de erro; eles têm o mesmo significado e valores " +"que em :c:func:`PyUnicode_FromFormat`. *format* é uma string codificada em " +"ASCII." #: ../../c-api/exceptions.rst:143 msgid "" @@ -254,6 +276,9 @@ msgid "" "*message* indicates that a built-in operation was invoked with an illegal " "argument. It is mostly for internal use." msgstr "" +"Essa é uma abreviação de ``PyErr_SetString(PyExc_TypeError, message)``, na " +"qual *message* indica que uma operação embutida foi invocada com um " +"argumento ilegal. Ela é principalmente para uso interno." #: ../../c-api/exceptions.rst:163 msgid "" @@ -270,14 +295,26 @@ 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 "" +"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 "" +"Esta é uma função conveniente para levantar uma exceção quando uma função da " +"biblioteca C retornou um erro e definir a variável C :c:data:`errno`. Ela " +"constrói um objeto tupla cujo primeiro item é o valor " +"inteiro :c:data:`errno` e cujo segundo item é a mensagem de erro " +"correspondente (obtida de :c:func:`!strerror`), e então chama " +"``PyErr_SetObject(type, object)``. No Unix, quando o valor :c:data:`errno` " +"é :c:macro:`!EINTR`, indicando uma chamada de sistema interrompida, isso " +"chama :c:func:`PyErr_CheckSignals`, e se isso definir o indicador de erro, " +"deixa-o definido como tal. A função retorna sempre ``NULL``, de forma que " +"uma função que envolve uma chamada de sistema pode retornar ``return " +"PyErr_SetFromErrno(type);`` quando a chamada de sistema retornar um erro." #: ../../c-api/exceptions.rst:186 msgid "" @@ -286,6 +323,10 @@ msgid "" "*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 "" +"Similar à :c:func:`PyErr_SetFromErrno`, com o comportamento adicional de " +"que, se *filenameObject* não é ``NULL``, ele é passado para o construtor de " +"*type* como um terceiro parâmetro. No caso da exceção :exc:`OSError`, isso é " +"usado para definir o atributo :attr:`!filename` da instância da exceção." #: ../../c-api/exceptions.rst:195 msgid "" @@ -293,6 +334,9 @@ msgid "" "second filename object, for raising errors when a function that takes two " "filenames fails." msgstr "" +"Similar à :c:func:`PyErr_SetFromErrnoWithFilenameObject`, mas recebe um " +"segundo objeto filename, para levantar erros quando uma função que recebe " +"dois nomes de arquivos falha." #: ../../c-api/exceptions.rst:204 msgid "" @@ -300,6 +344,9 @@ msgid "" "is given as a C string. *filename* is decoded from the :term:`filesystem " "encoding and error handler`." msgstr "" +"Similar à :c:func:`PyErr_SetFromErrnoWithFilenameObject`, mas o nome do " +"arquivo é fornecido como uma string C. *filename* é decodificado " +"do :term:`filesystem encoding and error handler`." #: ../../c-api/exceptions.rst:211 msgid "" @@ -314,27 +361,44 @@ msgid "" "``PyErr_SetObject(PyExc_OSError, object)``. This function always returns " "``NULL``." msgstr "" +"Essa é uma função conveniente para levantar :exc:`OSError`. Se chamada com " +"*ierr* de ``0``, o código de erro retornado por uma chamada para :c:func:`!" +"GetLastError` é usado instantaneamente. Ela chama a função Win32 :c:func:`!" +"FormatMessage` para retornar a descrição Windows do código de erro dado por " +"*ierr* ou :c:func:`!GetLastError`, e então constrói um objeto :exc:`OSError` " +"com o atributo :attr:`~OSError.winerror` definido para o código de erro, o " +"atributo :attr:`~OSError.strerror` definido para a mensagem de erro " +"correspondente (lida de :c:func:`!FormatMessage`), e então chama " +"``PyErr_SetObject(PyExc_OSError, object)``. Essa função sempre retorna " +"``NULL``." #: ../../c-api/exceptions.rst:221 ../../c-api/exceptions.rst:229 #: ../../c-api/exceptions.rst:240 ../../c-api/exceptions.rst:250 #: ../../c-api/exceptions.rst:258 ../../c-api/exceptions.rst:268 -msgid ":ref:`Availability `: Windows." -msgstr ":ref:`Disponibilidade `: Windows." +msgid "Availability" +msgstr "Disponibilidade" #: ../../c-api/exceptions.rst:226 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " "specifying the exception type to be raised." msgstr "" +"Semelhante a :c:func:`PyErr_SetFromWindowsErr`, com um parâmetro adicional " +"que especifica o tipo de exceção a ser levantada." #: ../../c-api/exceptions.rst:234 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." +"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 "" +"Semelhante a :c:func:`PyErr_SetFromWindowsErr`, com o comportamento " +"adicional de que, se *filename* não for ``NULL``, ele é decodificado a " +"partir da codificação do sistema de arquivos (:func:`os.fsdecode`) e passado " +"para o construtor de :exc:`OSError` como um terceiro parâmetro a ser usado " +"para definir o atributo :attr:`!filename` da instância da exceção." #: ../../c-api/exceptions.rst:245 msgid "" @@ -343,6 +407,10 @@ msgid "" "of :exc:`OSError` as a third parameter to be used to define the :attr:`!" "filename` attribute of the exception instance." msgstr "" +"Semelhante a :c:func:`PyErr_SetExcFromWindowsErr`, com o comportamento " +"adicional de que, se *filename* não for ``NULL``, ele é passado para o " +"construtor de :exc:`OSError` como um terceiro parâmetro a ser usado para " +"definir o atributo :attr:`!filename` da instância da exceção." #: ../../c-api/exceptions.rst:255 msgid "" @@ -367,6 +435,10 @@ msgid "" "be ``NULL``, will be set as the :exc:`ImportError`'s respective ``name`` and " "``path`` attributes." msgstr "" +"Essa é uma função conveniente para levantar :exc:`ImportError`. *msg* será " +"definido como a string da mensagem de exceção. *name* e *path*, ambos os " +"quais podem ser ``NULL``, serão definidos como, respectivamente, os " +"atributos ``name`` e ``path`` de :exc:`ImportError`." #: ../../c-api/exceptions.rst:283 msgid "" @@ -383,18 +455,27 @@ msgid "" "attributes, which make the exception printing subsystem think the exception " "is a :exc:`SyntaxError`." msgstr "" +"Define informações de arquivo, linha e deslocamento para a atual exceção. Se " +"a exceção não é :exc:`SyntaxError`, define atributos adicionais, os quais " +"fazem o subsistema de impressão de exceções pensar que trata-se de " +"um :exc:`SyntaxError`." #: ../../c-api/exceptions.rst:301 msgid "" "Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." msgstr "" +"Como :c:func:`PyErr_SyntaxLocationObject`, mas *filename* é uma bytestring " +"descodificada a partir do :term:`tratador de erros e codificação do sistema " +"de arquivos`." #: ../../c-api/exceptions.rst:309 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " "omitted." msgstr "" +"Como :c:func:`PyErr_SyntaxLocationEx`, mas o parâmetro *col_offset* é " +"omitido." #: ../../c-api/exceptions.rst:315 msgid "" @@ -403,10 +484,14 @@ msgid "" "function) was invoked with an illegal argument. It is mostly for internal " "use." msgstr "" +"Essa é uma abreviação de ``PyErr_SetString(PyExc_SystemError, message)``, " +"onde *message* indica que uma operação interna (por exemplo, uma função API " +"C/Python) foi invocada com um argumento ilegal. Ela é principalmente para " +"uso interno." #: ../../c-api/exceptions.rst:322 msgid "Issuing warnings" -msgstr "Emitindo advertências" +msgstr "Emitindo avisos" #: ../../c-api/exceptions.rst:324 msgid "" @@ -423,6 +508,19 @@ msgid "" "exception handling (for example, :c:func:`Py_DECREF` owned references and " "return an error value)." msgstr "" +"Use essas funções para emitir avisos a partir de código C. Elas espelham " +"funções semelhantes exportadas pelo módulo :mod:`warnings` do Python. " +"Normalmente, elas exibem uma mensagem de aviso em *sys.stderr*; no entanto, " +"também é possível que o usuário tenha especificado que os avisos devem ser " +"transformados em erros, e nesse caso, uma exceção será lançada. Também é " +"possível que as funções levantem uma exceção devido a um problema com o " +"mecanismo de avisos. O valor de retorno é ``0`` se nenhuma exceção for " +"lançada, ou ``-1`` se uma exceção for lançada. (Não é possível determinar se " +"uma mensagem de aviso é realmente impressa, nem qual é o motivo da exceção; " +"isso é intencional.) Se uma exceção for levantada, a função que chamou a " +"função deve realizar seu tratamento de exceções normal (por exemplo, liberar " +"as referências pertencentes a :c:func:`Py_DECREF` e retornar um valor de " +"erro)." #: ../../c-api/exceptions.rst:339 msgid "" @@ -430,54 +528,85 @@ msgid "" "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." +"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 "" +"Emite uma mensagem de aviso. O argumento *category* é uma categoria de aviso " +"(veja abaixo) ou ``NULL``; o argumento *message* é uma string codificada em " +"UTF-8. *stack_level* é um número positivo que indica o número de quadros da " +"pilha; o aviso será emitido a partir da linha de código atualmente em " +"execução nesse quadro da pilha. Um *stack_level* de 1 é a função que " +"chama :c:func:`PyErr_WarnEx`, 2 é a função acima dessa e assim por diante." #: ../../c-api/exceptions.rst:346 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`." +"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 "" +"As categorias de aviso devem ser subclasses " +"de :c:data:`PyExc_Warning`; :c:data:`PyExc_Warning` é uma subclasse " +"de :c:data:`PyExc_Exception`; a categoria de aviso padrão " +"é :c:data:`PyExc_RuntimeWarning`. As categorias de aviso padrão do Python " +"estão disponíveis como variáveis globais cujos nomes estão enumerados " +"em :ref:`standardwarningcategories`." #: ../../c-api/exceptions.rst:352 msgid "" -"For information about warning control, see the documentation for the :mod:" -"`warnings` module and the :option:`-W` option in the command line " +"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 "" +"Para obter informações sobre o controle de avisos, consulte a documentação " +"do módulo :mod:`warnings` e a opção :option:`-W` na documentação da linha de " +"comando. Não existe uma API C para o controle de avisos." #: ../../c-api/exceptions.rst:359 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." +"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 "" +"Emite uma mensagem de aviso com controle explícito sobre todos os atributos " +"de aviso. Trata-se de um invólucro simples em torno da função " +"Python :func:`warnings.warn_explicit`; consulte-a para obter mais " +"informações. Os argumentos *module* e *registry* podem ser definidos como " +"``NULL`` para obter o efeito padrão descrito nessa função." #: ../../c-api/exceptions.rst:370 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`." +"*module* are UTF-8 encoded strings, and *filename* is decoded from " +"the :term:`filesystem encoding and error handler`." msgstr "" +"Semelhante a :c:func:`PyErr_WarnExplicitObject`, exceto que *message* e " +"*module* são strings codificadas em UTF-8 e *filename* é decodificado a " +"partir do :term:`tratador de erros e codificação do sistema de arquivos`." #: ../../c-api/exceptions.rst:377 msgid "" -"Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" -"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" -"encoded string." +"Function similar to :c:func:`PyErr_WarnEx`, but " +"use :c:func:`PyUnicode_FromFormat` to format the warning message. *format* " +"is an ASCII-encoded string." msgstr "" +"Função similar a :c:func:`PyErr_WarnEx`, mas " +"usa :c:func:`PyUnicode_FromFormat` para formatar a mensagem de warning. O " +"*format* é um string codificada em ASCII." #: ../../c-api/exceptions.rst:386 msgid "" -"Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" -"`ResourceWarning` and it passes *source* to :class:`!warnings." -"WarningMessage`." +"Function similar to :c:func:`PyErr_WarnFormat`, but *category* " +"is :exc:`ResourceWarning` and it passes *source* to :class:`!" +"warnings.WarningMessage`." msgstr "" +"Função similar a :c:func:`PyErr_WarnFormat`, mas a *category* " +"é :exc:`ResourceWarning` e ela passa *source* para :class:`!" +"warnings.WarningMessage`." #: ../../c-api/exceptions.rst:393 msgid "Querying the error indicator" @@ -488,20 +617,21 @@ 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." +"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:403 msgid "The caller must hold the GIL." -msgstr "" +msgstr "O caller deve possuir o GIL." #: ../../c-api/exceptions.rst:407 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.)" +"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:415 @@ -535,6 +665,17 @@ msgstr "" msgid "For example::" msgstr "Por exemplo::" +#: ../../c-api/exceptions.rst:438 +msgid "" +"{\n" +" PyObject *exc = PyErr_GetRaisedException();\n" +"\n" +" /* ... code that might produce other errors ... */\n" +"\n" +" PyErr_SetRaisedException(exc);\n" +"}" +msgstr "" + #: ../../c-api/exceptions.rst:446 msgid "" ":c:func:`PyErr_GetHandledException`, to save the exception currently being " @@ -553,7 +694,7 @@ msgstr "" #: ../../c-api/exceptions.rst:468 msgid "Use :c:func:`PyErr_GetRaisedException` instead." -msgstr "" +msgstr "Use :c:func:`PyErr_GetRaisedException` em vez disso." #: ../../c-api/exceptions.rst:470 msgid "" @@ -570,9 +711,29 @@ msgid "" "exceptions or save and restore the error indicator temporarily." msgstr "" +#: ../../c-api/exceptions.rst:482 +msgid "" +"{\n" +" PyObject *type, *value, *traceback;\n" +" PyErr_Fetch(&type, &value, &traceback);\n" +"\n" +" /* ... code that might produce other errors ... */\n" +"\n" +" PyErr_Restore(type, value, traceback);\n" +"}" +msgstr "" +"{\n" +"PyObject *type, *value, *traceback;\n" +"PyErr_Fetch(&type, &value, &traceback);\n" +"\n" +"/* ... código que pode reproduzir outros erros ... */\n" +"\n" +"PyErr_Restore(type, value, traceback);\n" +"}" + #: ../../c-api/exceptions.rst:496 msgid "Use :c:func:`PyErr_SetRaisedException` instead." -msgstr "" +msgstr "Use :c:func:`PyErr_SetRaisedException` em vez disso." #: ../../c-api/exceptions.rst:498 msgid "" @@ -599,6 +760,8 @@ msgid "" "Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" "normalization." msgstr "" +"Use :c:func:`PyErr_GetRaisedException` em vez disso, para evitar qualquer " +"possível desnormalização." #: ../../c-api/exceptions.rst:524 msgid "" @@ -612,17 +775,29 @@ msgstr "" #: ../../c-api/exceptions.rst:532 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::" +"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:537 +msgid "" +"if (tb != NULL) {\n" +" PyException_SetTraceback(val, tb);\n" +"}" +msgstr "" +"if (tb != NULL) {\n" +"PyException_SetTraceback(val, tb);\n" +"}" + #: ../../c-api/exceptions.rst:544 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." +"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:551 @@ -650,12 +825,12 @@ msgstr "" #: ../../c-api/exceptions.rst:576 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`." +"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:585 @@ -672,8 +847,8 @@ msgid "" "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`." +"kept for backwards compatibility. Prefer " +"using :c:func:`PyErr_SetHandledException`." msgstr "" #: ../../c-api/exceptions.rst:604 @@ -712,8 +887,8 @@ msgid "" "The function attempts to handle all pending signals, and then returns ``0``. " "However, if a Python signal handler raises an exception, the error indicator " "is set and the function returns ``-1`` immediately (such that other pending " -"signals may not have been handled yet: they will be on the next :c:func:" -"`PyErr_CheckSignals()` invocation)." +"signals may not have been handled yet: they will be on the " +"next :c:func:`PyErr_CheckSignals()` invocation)." msgstr "" #: ../../c-api/exceptions.rst:642 @@ -721,6 +896,8 @@ msgid "" "If the function is called from a non-main thread, or under a non-main Python " "interpreter, it does nothing and returns ``0``." msgstr "" +"Se a função for chamada a partir de um thread não principal ou sobre um " +"interpretador Python não principal, ela não fará nada e retornará ``0``." #: ../../c-api/exceptions.rst:645 msgid "" @@ -730,27 +907,33 @@ msgstr "" #: ../../c-api/exceptions.rst:649 msgid "" -"The default Python signal handler for :c:macro:`!SIGINT` raises the :exc:" -"`KeyboardInterrupt` exception." +"The default Python signal handler for :c:macro:`!SIGINT` raises " +"the :exc:`KeyboardInterrupt` exception." msgstr "" +"O manipulador de sinal padrão Python para :c:macro:`!SIGINT` levanta a " +"exceção :exc:`KeyboardInterrupt`." #: ../../c-api/exceptions.rst:660 msgid "" "Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " "equivalent to ``PyErr_SetInterruptEx(SIGINT)``." msgstr "" +"Simula o efeito de um sinal :c:macro:`!SIGINT` chegando. Isto é equivalente " +"a ``PyErr_SetInterruptEx(SIGINT)``." #: ../../c-api/exceptions.rst:664 ../../c-api/exceptions.rst:691 msgid "" -"This function is async-signal-safe. It can be called without the :term:" -"`GIL` and from a C signal handler." +"This function is async-signal-safe. It can be called without " +"the :term:`GIL` and from a C signal handler." msgstr "" +"Esta função é segura para sinais assíncronos. Pode ser chamada sem " +"um :term:`GIL` e a partir de um manipulador de sinais C." #: ../../c-api/exceptions.rst:674 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." +"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:678 @@ -763,9 +946,13 @@ msgstr "" #: ../../c-api/exceptions.rst:683 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." +"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 "" +"Se o sinal fornecido não for tratado pelo Python (foi definido " +"como :py:const:`signal.SIG_DFL` ou :py:const:`signal.SIG_IGN`), ele será " +"ignorado." #: ../../c-api/exceptions.rst:686 msgid "" @@ -812,9 +999,9 @@ msgstr "" #: ../../c-api/exceptions.rst:723 msgid "" -"The :attr:`!__module__` attribute of the new class is set to the first part " -"(up to the last dot) of the *name* argument, and the class name is set to " -"the last part (after the last dot). The *base* argument can be used to " +"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." @@ -881,10 +1068,12 @@ msgid "" "The :attr:`~BaseException.__suppress_context__` attribute is implicitly set " "to ``True`` by this function." msgstr "" +"O atributo :attr:`~BaseException.__suppress_context__` é implicitamente " +"definido como ``True`` por esta função." #: ../../c-api/exceptions.rst:791 msgid "Return :attr:`~BaseException.args` of exception *ex*." -msgstr "" +msgstr "Retorna :attr:`~BaseException.args` da exceção *ex*." #: ../../c-api/exceptions.rst:796 msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." @@ -895,11 +1084,11 @@ 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." +"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:814 @@ -919,6 +1108,9 @@ msgid "" "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" +"Cria um objeto :class:`UnicodeDecodeError` com os atributos *encoding*, " +"*object*, *length*, *start*, *end* e *reason*. O *encoding* e *reason* são " +"strings codificadas em UTF-8." #: ../../c-api/exceptions.rst:827 msgid "Return the *encoding* attribute of the given exception object." @@ -961,6 +1153,8 @@ msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" +"Defina o atributo *end* do objeto de exceção fornecido para *end*. Retorna " +"``0`` em caso de sucesso e ``-1`` em caso de falha." #: ../../c-api/exceptions.rst:869 msgid "Return the *reason* attribute of the given exception object." @@ -971,6 +1165,8 @@ msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" +"Defina o atributo *reason* do objeto de exceção fornecido para *reason*. " +"Retorna ``0`` em caso de sucesso e ``-1`` em caso de falha." #: ../../c-api/exceptions.rst:882 msgid "Recursion Control" @@ -1018,19 +1214,23 @@ msgid "" "This function is now also available in the :ref:`limited API `." msgstr "" +"Esta função agora também está disponível na :ref:`API limitada `." #: ../../c-api/exceptions.rst:912 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "" +"Termina com :c:func:`Py_EnterRecursiveCall`. Deve ser chamada uma vez para " +"cada invocação *successful* de :c:func:`Py_EnterRecursiveCall`." #: ../../c-api/exceptions.rst:918 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. " +"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 "" @@ -1046,8 +1246,9 @@ msgstr "" 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 ``[...]``." +"should return a string object indicating a cycle. As " +"examples, :class:`dict` objects return ``{...}`` and :class:`list` objects " +"return ``[...]``." msgstr "" #: ../../c-api/exceptions.rst:935 @@ -1062,16 +1263,16 @@ msgstr "" #: ../../c-api/exceptions.rst:939 msgid "" -"Otherwise, the function returns zero and the :c:member:`~PyTypeObject." -"tp_repr` implementation can continue normally." +"Otherwise, the function returns zero and " +"the :c:member:`~PyTypeObject.tp_repr` implementation can continue normally." msgstr "" -"Caso contrário, a função retorna zero e a implementação :c:member:" -"`~PyTypeObject.tp_repr` poderá continuar normalmente." +"Caso contrário, a função retorna zero e a " +"implementação :c:member:`~PyTypeObject.tp_repr` poderá continuar normalmente." #: ../../c-api/exceptions.rst:944 msgid "" -"Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" -"c:func:`Py_ReprEnter` that returns zero." +"Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation " +"of :c:func:`Py_ReprEnter` that returns zero." msgstr "" "Termina a :c:func:`Py_ReprEnter`. Deve ser chamado uma vez para cada chamada " "de :c:func:`Py_ReprEnter` que retorna zero." @@ -1083,9 +1284,9 @@ msgstr "Exceções Padrão" #: ../../c-api/exceptions.rst:953 msgid "" "All standard Python exceptions are available as global variables whose names " -"are ``PyExc_`` followed by the Python exception name. These have the type :" -"c:expr:`PyObject*`; they are all class objects. For completeness, here are " -"all the variables:" +"are ``PyExc_`` followed by the Python exception name. These have the " +"type :c:expr:`PyObject*`; they are all class objects. For completeness, " +"here are all the variables:" msgstr "" #: ../../c-api/exceptions.rst:1014 ../../c-api/exceptions.rst:1147 @@ -1534,27 +1735,15 @@ msgstr ":exc:`ZeroDivisionError`" #: ../../c-api/exceptions.rst:1123 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: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`." +":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: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` " +"e :c:data:`PyExc_TimeoutError` foram introduzidos seguindo a :pep:`3151`." #: ../../c-api/exceptions.rst:1133 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." -msgstr ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." +msgstr ":c:data:`PyExc_StopAsyncIteration` e :c:data:`PyExc_RecursionError`." #: ../../c-api/exceptions.rst:1136 msgid ":c:data:`PyExc_ModuleNotFoundError`." @@ -1566,15 +1755,15 @@ msgstr "Esses são os aliases de compatibilidade para :c:data:`PyExc_OSError`:" #: ../../c-api/exceptions.rst:1149 msgid ":c:data:`!PyExc_EnvironmentError`" -msgstr "" +msgstr ":c:data:`!PyExc_EnvironmentError`" #: ../../c-api/exceptions.rst:1151 msgid ":c:data:`!PyExc_IOError`" -msgstr "" +msgstr ":c:data:`!PyExc_IOError`" #: ../../c-api/exceptions.rst:1153 msgid ":c:data:`!PyExc_WindowsError`" -msgstr "" +msgstr ":c:data:`!PyExc_WindowsError`" #: ../../c-api/exceptions.rst:1153 msgid "[2]_" @@ -1714,7 +1903,7 @@ msgstr "Esta é uma classe base para outras categorias de aviso padrão." #: ../../c-api/exceptions.rst:170 msgid "strerror (C function)" -msgstr "" +msgstr "strerror (função C)" #: ../../c-api/exceptions.rst:624 ../../c-api/exceptions.rst:655 #: ../../c-api/exceptions.rst:670 @@ -1728,20 +1917,20 @@ msgstr "signal" #: ../../c-api/exceptions.rst:624 ../../c-api/exceptions.rst:655 msgid "SIGINT (C macro)" -msgstr "" +msgstr "SIGINT (macro C)" #: ../../c-api/exceptions.rst:624 ../../c-api/exceptions.rst:655 #: ../../c-api/exceptions.rst:670 msgid "KeyboardInterrupt (built-in exception)" -msgstr "" +msgstr "KeyboardInterrupt (exceção embutida)" #: ../../c-api/exceptions.rst:958 msgid "PyExc_BaseException (C var)" -msgstr "" +msgstr "PyExc_BaseException (C var)" #: ../../c-api/exceptions.rst:958 msgid "PyExc_Exception (C var)" -msgstr "" +msgstr "PyExc_Exception (var C )" #: ../../c-api/exceptions.rst:958 msgid "PyExc_ArithmeticError (C var)" diff --git a/c-api/file.po b/c-api/file.po index c03f15e0e..ab9451b80 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,21 +31,22 @@ msgstr "Objetos arquivos" 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." +"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 "" "Essas APIs são uma emulação mínima da API C do Python 2 para objetos arquivo " -"embutidos, que costumavam depender do suporte de E/S em buffer (:c:expr:" -"`FILE*`) da biblioteca C padrão. No Python 3, arquivos e streams usam o novo " -"módulo :mod:`io`, que define várias camadas sobre a E/S sem buffer de baixo " -"nível do sistema operacional. As funções descritas a seguir são wrappers C " -"de conveniência sobre essas novas APIs e são destinadas principalmente para " -"relatórios de erros internos no interpretador; código de terceiros é " -"recomendado para acessar as APIs de :mod:`io`." +"embutidos, que costumavam depender do suporte de E/S em buffer " +"(:c:expr:`FILE*`) da biblioteca C padrão. No Python 3, arquivos e streams " +"usam o novo módulo :mod:`io`, que define várias camadas sobre a E/S sem " +"buffer de baixo nível do sistema operacional. As funções descritas a seguir " +"são invólucros de conveniência para o C sobre essas novas APIs e são " +"destinadas principalmente para relatórios de erros internos no " +"interpretador; código de terceiros é recomendado para acessar as APIs " +"de :mod:`io`." #: ../../c-api/file.rst:22 msgid "" @@ -80,34 +81,34 @@ msgstr "Ignora atributo *name*." #: ../../c-api/file.rst:41 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." +"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 "" "Retorna o descritor de arquivo associado a *p* como um :c:expr:`int`. Se o " -"objeto for um inteiro, seu valor será retornado. Caso contrário, o método :" -"meth:`~io.IOBase.fileno` do objeto será chamado se existir; o método deve " -"retornar um inteiro, que é retornado como o valor do descritor de arquivo. " -"Define uma exceção e retorna ``-1`` em caso de falha." +"objeto for um inteiro, seu valor será retornado. Caso contrário, o " +"método :meth:`~io.IOBase.fileno` do objeto será chamado se existir; o método " +"deve retornar um inteiro, que é retornado como o valor do descritor de " +"arquivo. Define uma exceção e retorna ``-1`` em caso de falha." #: ../../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." +"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 "" "Equivalente a ``p.readline([n])``, esta função lê uma linha do objeto *p*. " -"*p* pode ser um objeto arquivo ou qualquer objeto com um método :meth:`~io." -"IOBase.readline`. Se *n* for ``0``, exatamente uma linha é lida, " -"independentemente do comprimento da linha. Se *n* for maior que ``0``, não " -"mais do que *n* bytes serão lidos do arquivo; uma linha parcial pode ser " +"*p* pode ser um objeto arquivo ou qualquer objeto com um " +"método :meth:`~io.IOBase.readline`. Se *n* for ``0``, exatamente uma linha é " +"lida, independentemente do comprimento da linha. Se *n* for maior que ``0``, " +"não mais do que *n* bytes serão lidos do arquivo; uma linha parcial pode ser " "retornada. Em ambos os casos, uma string vazia é retornada se o final do " "arquivo for alcançado imediatamente. Se *n* for menor que ``0``, entretanto, " "uma linha é lida independentemente do comprimento, mas :exc:`EOFError` é " @@ -122,10 +123,10 @@ msgstr "" "parâmetro por meio do manipulador fornecido." #: ../../c-api/file.rst:68 -msgid "The handler is a function of type:" -msgstr "O tratador é uma função do tipo:" +msgid "The *handler* is a function of type:" +msgstr "O *handler* é uma função do tipo:" -#: ../../c-api/file.rst:72 +#: ../../c-api/file.rst:73 msgid "" "Equivalent of :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " "where *path* is guaranteed to be :c:type:`PyUnicodeObject`." @@ -133,7 +134,7 @@ msgstr "" "Equivalente de :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " "sendo *path* garantido como sendo :c:type:`PyUnicodeObject`." -#: ../../c-api/file.rst:76 +#: ../../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 " @@ -143,7 +144,7 @@ msgstr "" "gancho podem ser chamadas de diferentes tempos de execução, esse ponteiro " "não deve se referir diretamente ao estado do Python." -#: ../../c-api/file.rst:80 +#: ../../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 " @@ -153,7 +154,7 @@ msgstr "" "importar novos módulos durante sua execução, a menos que eles estejam " "congelados ou disponíveis em ``sys.modules``." -#: ../../c-api/file.rst:84 +#: ../../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 " @@ -164,19 +165,19 @@ msgstr "" "irão falhar. Em caso de falha, a função retorna -1 e define uma exceção se o " "interpretador foi inicializado." -#: ../../c-api/file.rst:88 +#: ../../c-api/file.rst:89 msgid "This function is safe to call before :c:func:`Py_Initialize`." msgstr "É seguro chamar esta função antes :c:func:`Py_Initialize`." -#: ../../c-api/file.rst:90 +#: ../../c-api/file.rst:91 msgid "" "Raises an :ref:`auditing event ` ``setopencodehook`` with no " "arguments." msgstr "" -"Levanta um :ref:`evento de auditoria` ``setopencodehook`` com " -"nenhum argumento." +"Levanta um :ref:`evento de auditoria` ``setopencodehook`` sem " +"argumentos." -#: ../../c-api/file.rst:100 +#: ../../c-api/file.rst:101 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 " @@ -188,7 +189,7 @@ msgstr "" "objeto é escrito em vez de :func:`repr`. Retorna ``0`` em caso de sucesso ou " "``-1`` em caso de falha; a exceção apropriada será definida." -#: ../../c-api/file.rst:108 +#: ../../c-api/file.rst:109 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." @@ -208,6 +209,6 @@ msgstr "arquivo" msgid "EOFError (built-in exception)" msgstr "EOFError (exceção embutida)" -#: ../../c-api/file.rst:98 +#: ../../c-api/file.rst:99 msgid "Py_PRINT_RAW (C macro)" msgstr "Py_PRINT_RAW (macro C)" diff --git a/c-api/float.po b/c-api/float.po index 2f53f2fb4..3f6c872a1 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -1,42 +1,42 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/float.rst:6 -msgid "Floating Point Objects" +msgid "Floating-Point Objects" msgstr "Objetos de ponto flutuante" #: ../../c-api/float.rst:13 msgid "" -"This subtype of :c:type:`PyObject` represents a Python floating point object." +"This subtype of :c:type:`PyObject` represents a Python floating-point object." msgstr "" "Este subtipo de :c:type:`PyObject` representa um objeto de ponto flutuante " "do Python." #: ../../c-api/float.rst:18 msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python floating point " +"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 "" "Esta instância do :c:type:`PyTypeObject` representa o tipo de ponto " @@ -45,11 +45,11 @@ msgstr "" #: ../../c-api/float.rst:24 msgid "" -"Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" -"type:`PyFloatObject`. This function always succeeds." +"Return true if its argument is a :c:type:`PyFloatObject` or a subtype " +"of :c:type:`PyFloatObject`. This function always succeeds." msgstr "" -"Retorna true se seu argumento é um :c:type:`PyFloatObject` ou um subtipo de :" -"c:type:`PyFloatObject`. Esta função sempre tem sucesso." +"Retorna true se seu argumento é um :c:type:`PyFloatObject` ou um subtipo " +"de :c:type:`PyFloatObject`. Esta função sempre tem sucesso." #: ../../c-api/float.rst:30 msgid "" @@ -75,12 +75,19 @@ msgstr "Cria um objeto :c:type:`PyFloatObject` de *v* ou ``NULL`` em falha." #: ../../c-api/float.rst:47 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." +"*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 "" +"Retorna uma representação C :c:expr:`double` do conteúdo de *pyfloat*. Se " +"*pyfloat* não é um objeto de ponto flutuante do Python, mas possui o " +"método :meth:`~object.__float__`, esse método será chamado primeiro para " +"converter *pyfloat* em um ponto flutuante. Se :meth:`!__float__` não estiver " +"definido, será usado :meth:`~object.__index__`. Este método retorna ``-1.0`` " +"em caso de falha, portanto, deve-se chamar :c:func:`PyErr_Occurred` para " +"verificar se há erros." #: ../../c-api/float.rst:54 msgid "Use :meth:`~object.__index__` if available." @@ -91,6 +98,8 @@ msgid "" "Return a C :c:expr:`double` representation of the contents of *pyfloat*, but " "without error checking." msgstr "" +"Retorna uma representação C :c:expr:`double` do conteúdo de *pyfloat*, mas " +"sem verificação de erro." #: ../../c-api/float.rst:66 msgid "" @@ -99,32 +108,42 @@ msgid "" "file :file:`float.h`." msgstr "" "Retorna uma instância de structseq que contém informações sobre a precisão, " -"os valores mínimo e máximo de um ponto flutuante. É um wrapper fino em torno " -"do arquivo de cabeçalho :file:`float.h`." +"os valores mínimo e máximo de um ponto flutuante. É um invólucro fino em " +"torno do arquivo de cabeçalho :file:`float.h`." #: ../../c-api/float.rst:73 msgid "" -"Return the maximum representable finite float *DBL_MAX* as C :c:expr:" -"`double`." +"Return the maximum representable finite float *DBL_MAX* as " +"C :c:expr:`double`." msgstr "" +"Retorna o ponto flutuante finito máximo representável *DBL_MAX* " +"como :c:expr:`double` do C." #: ../../c-api/float.rst:78 msgid "" "Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`." msgstr "" +"Retorna o ponto flutuante positivo mínimo normalizado *DBL_MIN* " +"como :c:expr:`double` do C." #: ../../c-api/float.rst:82 msgid "Pack and Unpack functions" -msgstr "" +msgstr "As funções Pack e Unpack" #: ../../c-api/float.rst:84 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." +"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 "" +"As funções de empacotamento e desempacotamento, pack e unpack " +"respectivamente, fornecem uma maneira eficiente e independente de plataforma " +"de armazenar valores de ponto flutuante como strings de bytes. As rotinas de " +"Pack produzem uma string de bytes a partir de um C :c:expr:`double`, e as " +"rotinas de Unpack produzem um C :c:expr:`double` a partir dessa string de " +"bytes. O sufixo (2, 4 ou 8) especifica o número de bytes na string de bytes." #: ../../c-api/float.rst:90 msgid "" @@ -137,6 +156,14 @@ msgid "" "attempting to unpack a bytes string containing an IEEE INF or NaN will raise " "an exception." msgstr "" +"Em plataformas que parecem usar o formato IEEE 754, essas funções funcionam " +"copiando bits. Em outras plataformas, o formato de 2 bytes é idêntico ao " +"formato de meia precisão binário 16 do IEEE 754, o formato de 4 bytes (32 " +"bits) é idêntico ao formato de precisão simples binário 32 do IEEE 754 e o " +"formato de 8 bytes ao formato de precisão dupla binário 64 do IEEE 754, " +"embora o empacotamento de INFs e NaNs (se tais recursos existirem na " +"plataforma) não seja tratado corretamente, e tentar desempacotar uma string " +"de bytes contendo um INF ou NaN do IEEE levantará uma exceção." #: ../../c-api/float.rst:99 msgid "" @@ -145,94 +172,127 @@ msgid "" "less precision, or smaller dynamic range, not all values can be unpacked. " "What happens in such cases is partly accidental (alas)." msgstr "" +"Em plataformas que não aderem IEEE com maior precisão ou maior alcance " +"dinâmico do que o suportado pelo IEEE 754, nem todos os valores podem ser " +"empacotados; em plataformas que não aderem IEEE com menor precisão ou menor " +"alcance dinâmico, nem todos os valores podem ser desempacotados. O que " +"acontece nesses casos é em parte acidental (infelizmente)." #: ../../c-api/float.rst:107 msgid "Pack functions" -msgstr "" +msgstr "Funções Pack" #: ../../c-api/float.rst:109 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`` ``p+7``), zero if you " -"want big-endian format (exponent first, at *p*). The :c:macro:" -"`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal " -"to ``1`` on big endian processor, or ``0`` on little endian processor." +"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`` ``p+7``), zero " +"if you want big-endian format (exponent first, at *p*). " +"The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: " +"it is equal to ``1`` on big endian processor, or ``0`` on little endian " +"processor." msgstr "" +"As rotinas de empacotamento gravam 2, 4 ou 8 bytes, começando em *p*. *le* é " +"um argumento :c:expr:`int`, diferente de zero se você quiser a sequência de " +"bytes no formato little-endian (expoente por último, em ``p+1``, ``p+3`` ou " +"``p+6`` ``p+7``), zero se você quiser o formato big-endian (expoente " +"primeiro, em *p*). A constante :c:macro:`PY_BIG_ENDIAN` pode ser usada para " +"usar o endian nativo: é igual a ``1`` em processadores big-endian ou ``0`` " +"em processadores little-endian." #: ../../c-api/float.rst:116 msgid "" "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " "most likely :exc:`OverflowError`)." msgstr "" +"Valor de retorno: ``0`` se tudo estiver OK, ``-1`` se houver erro (e uma " +"exceção for definida, provavelmente :exc:`OverflowError`)." #: ../../c-api/float.rst:119 msgid "There are two problems on non-IEEE platforms:" -msgstr "" +msgstr "Existem dois problemas em plataformas não IEEE:" #: ../../c-api/float.rst:121 msgid "What this does is undefined if *x* is a NaN or infinity." -msgstr "" +msgstr "O que isso faz é indefinido se *x* é um NaN ou infinito." #: ../../c-api/float.rst:122 msgid "``-0.0`` and ``+0.0`` produce the same bytes string." -msgstr "" +msgstr "``-0.0`` e ``+0.0`` produzem a mesma sequência de bytes." #: ../../c-api/float.rst:126 msgid "Pack a C double as the IEEE 754 binary16 half-precision format." msgstr "" +"Empacota um C duplo como o formato de meia precisão binário16 IEEE 754." #: ../../c-api/float.rst:130 msgid "Pack a C double as the IEEE 754 binary32 single precision format." msgstr "" +"Empacota um C duplo como o formato de precisão simples binário32 IEEE 754." #: ../../c-api/float.rst:134 msgid "Pack a C double as the IEEE 754 binary64 double precision format." msgstr "" +"Empacota um C duplo como o formato de precisão dupla binária 64 IEEE 754." #: ../../c-api/float.rst:138 msgid "Unpack functions" -msgstr "" +msgstr "Funções de Unpack" #: ../../c-api/float.rst:140 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*). The :c:macro:`PY_BIG_ENDIAN` constant can " -"be used to use the native endian: it is equal to ``1`` on big endian " +"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*). The :c:macro:`PY_BIG_ENDIAN` constant " +"can be used to use the native endian: it is equal to ``1`` on big endian " "processor, or ``0`` on little endian processor." msgstr "" +"As rotinas de desempacotamento leem 2, 4 ou 8 bytes, começando em *p*. *le* " +"é um argumento :c:expr:`int`, diferente de zero se a sequência de bytes " +"estiver no formato little-endian (expoente por último, em ``p+1``, ``p+3`` " +"ou ``p+6`` e ``p+7``), zero se big-endian (expoente primeiro, em *p*). A " +"constante :c:macro:`PY_BIG_ENDIAN` pode ser usada para usar o endian nativo: " +"é igual a ``1`` em processadores big-endian ou ``0`` em processadores little-" +"endian." #: ../../c-api/float.rst:147 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`)." +"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 "" +"Valor de retorno: O double descompactado. Em caso de erro, é ``-1.0`` " +"e :c:func:`PyErr_Occurred` é verdadeiro (e uma exceção é definida, " +"provavelmente :exc:`OverflowError`)." #: ../../c-api/float.rst:151 msgid "" "Note that on a non-IEEE platform this will refuse to unpack a bytes string " "that represents a NaN or infinity." msgstr "" +"Observe que em uma plataforma que não adere IEEE isso se recusará a " +"descompactar uma sequência de bytes que representa um NaN ou infinito." #: ../../c-api/float.rst:156 msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." msgstr "" +"Descompacta o formato de meia precisão IEEE 754 binary16 como um double C." #: ../../c-api/float.rst:160 msgid "Unpack the IEEE 754 binary32 single precision format as a C double." msgstr "" +"Descompacta o formato IEEE 754 binary32 de precisão simples como um C double." #: ../../c-api/float.rst:164 msgid "Unpack the IEEE 754 binary64 double precision format as a C double." msgstr "" +"Descompacta o formato IEEE 754 binary64 de precisão dupla como um C double." #: ../../c-api/float.rst:8 msgid "object" msgstr "objeto" #: ../../c-api/float.rst:8 -msgid "floating point" +msgid "floating-point" msgstr "ponto flutuante" diff --git a/c-api/frame.po b/c-api/frame.po index d18e2aee0..07a43e527 100644 --- a/c-api/frame.po +++ b/c-api/frame.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Ruan Aragão , 2022 -# Flávio Neves, 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2022-11-05 19:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -42,8 +40,8 @@ msgid "" "The members of this structure were removed from the public C API. Refer to " "the :ref:`What's New entry ` for details." msgstr "" -"Os membros dessa estrutura foram removidos da API C pública. Consulte a :ref:" -"`entrada O Que há de Novo ` para detalhes." +"Os membros dessa estrutura foram removidos da API C pública. Consulte " +"a :ref:`entrada O Que há de Novo ` para detalhes." #: ../../c-api/frame.rst:17 msgid "" @@ -59,8 +57,8 @@ msgstr "Veja também :ref:`Reflexão `." #: ../../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." +"The type of frame objects. It is the same object " +"as :py:class:`types.FrameType` in the Python layer." msgstr "" "O tipo de objetos frame. É o mesmo objeto que :py:class:`types.FrameType` na " "camada Python." @@ -69,8 +67,8 @@ msgstr "" msgid "" "Previously, this type was only available after including ````." msgstr "" -"Anteriormente, este tipo só estava disponível após incluir ````." +"Anteriormente, este tipo só estava disponível após incluir " +"````." #: ../../c-api/frame.rst:34 msgid "Return non-zero if *obj* is a frame object." @@ -78,11 +76,11 @@ msgstr "Retorna diferente de zero se *obj* é um objeto frame" #: ../../c-api/frame.rst:38 msgid "" -"Previously, this function was only available after including ````." +"Previously, this function was only available after including " +"````." msgstr "" -"Anteriormente, esta função só estava disponível após incluir ````." +"Anteriormente, esta função só estava disponível após incluir " +"````." #: ../../c-api/frame.rst:43 msgid "Get the *frame* next outer frame." @@ -97,7 +95,7 @@ msgstr "" #: ../../c-api/frame.rst:53 msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." -msgstr "" +msgstr "Obtém o atributo :attr:`~frame.f_builtins` do *frame*." #: ../../c-api/frame.rst:55 ../../c-api/frame.rst:86 msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." @@ -132,11 +130,11 @@ msgstr "Retorna uma :term:`referência forte`, ou ``NULL``." #: ../../c-api/frame.rst:84 msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." -msgstr "" +msgstr "Obtenha o atributo :attr:`~frame.f_globals` do *frame*." #: ../../c-api/frame.rst:93 msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." -msgstr "" +msgstr "Obtenha o atributo :attr:`~frame.f_lasti` do *frame*." #: ../../c-api/frame.rst:95 msgid "Returns -1 if ``frame.f_lasti`` is ``None``." @@ -144,30 +142,35 @@ msgstr "Retorna -1 se ``frame.f_lasti`` é ``None``." #: ../../c-api/frame.rst:102 msgid "Get the variable *name* of *frame*." -msgstr "" +msgstr "Obtém a variável *name* de *frame*." #: ../../c-api/frame.rst:104 msgid "Return a :term:`strong reference` to the variable value on success." msgstr "" +"Retorna uma :term:`referência forte` ao valor da variável em caso de sucesso." #: ../../c-api/frame.rst:105 msgid "" "Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." msgstr "" +"Levanta uma exceção :exc:`NameError` e retorna ``NULL`` se a variável não " +"existir." #: ../../c-api/frame.rst:106 msgid "Raise an exception and return ``NULL`` on error." -msgstr "" +msgstr "Levanta uma exceção e retorna ``NULL`` em caso de erro." #: ../../c-api/frame.rst:108 msgid "*name* type must be a :class:`str`." -msgstr "" +msgstr "Tipo de *name* deve ser um :class:`str`." #: ../../c-api/frame.rst:115 msgid "" "Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " "encoded in UTF-8." msgstr "" +"Semelhante a :c:func:`PyFrame_GetVar`, mas o nome da variável é uma string C " +"codificada em UTF-8." #: ../../c-api/frame.rst:123 msgid "Get the *frame*'s :attr:`~frame.f_locals` attribute (:class:`dict`)." diff --git a/c-api/function.po b/c-api/function.po index b224fab75..859e2dc9d 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -1,32 +1,31 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Italo Penaforte , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/function.rst:6 msgid "Function Objects" -msgstr "Objetos Função" +msgstr "Objetos Function" #: ../../c-api/function.rst:10 msgid "There are a few functions specific to Python functions." @@ -39,21 +38,21 @@ msgstr "A estrutura C usada para funções." #: ../../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``." +"function type. It is exposed to Python programmers as " +"``types.FunctionType``." msgstr "" "Esta é uma instância de :c:type:`PyTypeObject` e representa o tipo de função " -"Python. Está exposto aos programadores Python como ``types.FunctionType``." +"Python. Está exposta a programadores Python como ``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." +"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 "" -"Retorna verdadeiro se *o* é um objeto de função (tem tipo :c:data:" -"`PyFunction_Type`). O parâmetro não deve ser ``NULL``. Esta função sempre " -"tem sucesso." +"Retorna verdadeiro se *o* for um objeto função (tem " +"tipo :c:data:`PyFunction_Type`). O parâmetro não deve ser ``NULL``. Esta " +"função sempre obtém sucesso." #: ../../c-api/function.rst:34 msgid "" @@ -61,29 +60,40 @@ msgid "" "*globals* must be a dictionary with the global variables accessible to the " "function." msgstr "" -"Retorna um novo objeto função associado ao código objeto *code*. *globals* " +"Retorna um novo objeto função associado ao objeto código *code*. *globals* " "deve ser um dicionário com as variáveis globais acessíveis à função." #: ../../c-api/function.rst:37 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." +"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 "" +"O nome e *docstring* da função são adquiridos pelo objeto código. O " +"atributo :attr:`~function.__module__` é adquirido por meio de *globals*. Os " +"valores-padrão de argumentos, anotações, e fechamento são definidos como " +"``NULL``. O atributo :attr:`~function.__qualname__` é definido com o mesmo " +"valor do campo :attr:`~codeobject.co_qualname` de um objeto código." #: ../../c-api/function.rst:46 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." +"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 "" +"Similar a :c:func:`PyFunction_New`, mas também permite definir o " +"atributo :attr:`~function.__qualname__` do objeto função. *qualname* deve " +"ser um objeto Unicode ou ``NULL``. Se ``NULL``, o atributo :attr:`!" +"__qualname__` é definido com o mesmo valor do " +"campo :attr:`~codeobject.co_qualname` do objeto código." #: ../../c-api/function.rst:57 msgid "Return the code object associated with the function object *op*." -msgstr "Retorna o objeto de código associado ao objeto função *op*." +msgstr "Retorna o objeto código associado ao objeto função *op*." #: ../../c-api/function.rst:62 msgid "Return the globals dictionary associated with the function object *op*." @@ -95,51 +105,58 @@ msgid "" "attribute of the :ref:`function object ` *op*. It can be " "*NULL*." msgstr "" +"Retorna uma :term:`referência emprestada` ao " +"atributo :attr:`~function.__module__` do :ref:`objeto função ` *op*. Pode ser `NULL`." #: ../../c-api/function.rst:71 msgid "" "This is normally a :class:`string ` containing the module name, but can " "be set to any other object by Python code." msgstr "" +"Normalmente, trata-se de um :class:`string ` contendo o nome do módulo, " +"mas pode ser definido como qualquer outro objeto pelo código Python." #: ../../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 "" -"Retorna o argumento os valores padrão do objeto função *op*. Isso pode ser " -"uma tupla de argumentos ou ``NULL``." +"Retorna os valores-padrão de argumentos do objeto função *op*. Pode ser uma " +"tupla de argumentos 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 "" -"Define o argumento valores padrão para o objeto função *op*. *defaults* deve " -"ser ``Py_None`` ou uma tupla." +"Define os valores-padrão dos argumentos do objeto função *op*. *defaults* " +"deve ser ``Py_None`` ou uma tupla." #: ../../c-api/function.rst:86 ../../c-api/function.rst:109 #: ../../c-api/function.rst:123 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." -msgstr "Levanta :exc:`SystemError` e retorna ``-1`` em falha." +msgstr "Levanta :exc:`SystemError` e retorna ``-1`` em caso de falha." #: ../../c-api/function.rst:91 msgid "Set the vectorcall field of a given function object *func*." -msgstr "" +msgstr "Define o campo *vectorcall* de um objeto função *func*." #: ../../c-api/function.rst:93 msgid "" "Warning: extensions using this API must preserve the behavior of the " "unaltered (default) vectorcall function!" msgstr "" +"Atenção: extensões que usam essa API devem preservar o comportamento " +"inalterado (padrão) de uma função *vectorcall*!" #: ../../c-api/function.rst:100 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." msgstr "" -"Retorna o fechamento associado ao objeto função *op*. Isso pode ser ``NULL`` " -"ou uma tupla de objetos de célula." +"Retorna o fechamento associado ao objeto função *op*. Pode ser ``NULL`` ou " +"uma tupla de objetos célula." #: ../../c-api/function.rst:106 msgid "" @@ -172,42 +189,72 @@ msgid "" "case of error (e.g. no more watcher IDs available), return ``-1`` and set an " "exception." msgstr "" +"Registra *callback* como uma sentinela de função para o interpretador atual. " +"Retorna um ID que pode ser passado para :c:func:`PyFunction_ClearWatcher`. " +"Em caso de erro (por exemplo, sem novos IDs de sentinelas disponíveis), " +"retorna ``-1`` e define uma exceção." #: ../../c-api/function.rst:138 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.)" +"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 "" +"Cancela o registro da sentinela identificada pelo *watcher_id* retornado " +"por :c:func:`PyFunction_AddWatcher` para o interpretador atual. Retorna " +"``0`` em caso de sucesso, ou ``-1`` e define uma exceção em caso de erro " +"(por exemplo, ao receber um *watcher_id* desconhecido.)" #: ../../c-api/function.rst:148 -msgid "" -"Enumeration of possible function watcher events: - " -"``PyFunction_EVENT_CREATE`` - ``PyFunction_EVENT_DESTROY`` - " -"``PyFunction_EVENT_MODIFY_CODE`` - ``PyFunction_EVENT_MODIFY_DEFAULTS`` - " -"``PyFunction_EVENT_MODIFY_KWDEFAULTS``" -msgstr "" +msgid "Enumeration of possible function watcher events:" +msgstr "Enumeração de possíveis eventos do observador de funções:" + +#: ../../c-api/function.rst:150 +msgid "``PyFunction_EVENT_CREATE``" +msgstr "``PyFunction_EVENT_CREATE``" -#: ../../c-api/function.rst:160 +#: ../../c-api/function.rst:151 +msgid "``PyFunction_EVENT_DESTROY``" +msgstr "``PyFunction_EVENT_DESTROY``" + +#: ../../c-api/function.rst:152 +msgid "``PyFunction_EVENT_MODIFY_CODE``" +msgstr "``PyFunction_EVENT_MODIFY_CODE``" + +#: ../../c-api/function.rst:153 +msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_DEFAULTS``" + +#: ../../c-api/function.rst:154 +msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" + +#: ../../c-api/function.rst:161 msgid "Type of a function watcher callback function." -msgstr "" +msgstr "Tipo de uma função de retorno de sentinela de função." -#: ../../c-api/function.rst:162 +#: ../../c-api/function.rst:163 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." +"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 "" +"Se *event* for ``PyFunction_EVENT_CREATE`` ou ``PyFunction_EVENT_DESTROY``, " +"*new_value* será ``NULL``. Senão, *new_value* portará uma :term:`referência " +"emprestada` ao novo valor prestes a ser guardado em *func* para o atributo " +"que está sendo modificado." -#: ../../c-api/function.rst:167 +#: ../../c-api/function.rst:168 msgid "" "The callback may inspect but must not modify *func*; doing so could have " "unpredictable effects, including infinite recursion." msgstr "" +"A função de retorno poderá somente inspecionar, e não modificar *func*. Caso " +"contrário, poderíamos ter efeitos imprevisíveis, incluindo recursão infinita." -#: ../../c-api/function.rst:170 +#: ../../c-api/function.rst:171 msgid "" "If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " "after `func` has been fully initialized. Otherwise, the callback is invoked " @@ -218,26 +265,40 @@ msgid "" "behavior depending on optimization decisions, it does not change the " "semantics of the Python code being executed." msgstr "" - -#: ../../c-api/function.rst:179 +"Se *event* for ``PyFunction_EVENT_CREATE``, a função de retorno será " +"invocada após *func* ter sido completamente inicializada. Caso contrário, a " +"função de retorno será invocada antes de modificar *func*, então o estado " +"anterior de *func* poderá ser inspecionado. O ambiente de execução pode " +"otimizar a criação de objetos função, quando possível, ao ignorá-las. Nesses " +"casos, nenhum evento será emitido. Apesar de decisões de otimização criarem " +"diferenças de comportamento em tempo de execução, elas não mudam a semântica " +"do código Python sendo executado." + +#: ../../c-api/function.rst:180 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 "" +"Se *event* for ``PyFunction_EVENT_DESTROY``, então obter uma referência " +"dentro da função de retorno para a função prestes a ser destruída irá revivê-" +"la, impedindo que esta função seja liberada nesse tempo. Quando o objeto " +"revivido for destruído, quaisquer funções de retorno sentinelas ativas nesse " +"momento poderão ser chamadas novamente." -#: ../../c-api/function.rst:184 +#: ../../c-api/function.rst:185 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``." +"will be printed as an unraisable exception " +"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." msgstr "" -"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``; essa " -"exceção será impressa como uma exceção não reprovável usando :c:func:" -"`PyErr_WriteUnraisable`. Caso contrário, deverá retornar ``0``." +"Se a função de retorno definir uma exceção, ela deverá retornar ``-1``. Essa " +"exceção será exibida como uma exceção não levantável " +"usando :c:func:`PyErr_WriteUnraisable`. Caso contrário, deverá retornar " +"``0``." -#: ../../c-api/function.rst:188 +#: ../../c-api/function.rst:189 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 " @@ -245,11 +306,11 @@ msgid "" "exception unless it saves and clears the exception state first, and restores " "it before returning." msgstr "" -"É possível que já exista uma exceção pendente definida na entrada da chamada " +"É possível que já exista uma exceção pendente definida na entrada da função " "de retorno. Nesse caso, a função de retorno deve retornar ``0`` com a mesma " -"exceção ainda definida. Isso significa que a callback não pode chamar " -"nenhuma outra API que possa definir uma exceção, a menos que salve e limpe o " -"estado da exceção primeiro e o restaure antes de retornar." +"exceção ainda definida. Isso significa que a função de retorno não pode " +"chamar nenhuma outra API que possa definir uma exceção, a menos que salve e " +"limpe o estado da exceção primeiro e restaure a exceção antes de retornar." #: ../../c-api/function.rst:8 msgid "object" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 0dfa75639..7bc58153f 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rodrigo Cândido, 2022 -# Andressa Lima Ferreira, 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-03 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -39,8 +37,8 @@ msgid "" "explicit support for garbage collection." msgstr "" "O suporte do Python para detectar e coletar o lixo, que envolve referencias " -"circulares, requer suporte dos tipos de objetos que são \"contêiners\" para " -"outros objetos que também podem ser contêiners. Tipos que não armazenam " +"circulares, requer suporte dos tipos de objetos que são \"contêineres\" para " +"outros objetos que também podem ser contêineres. Tipos que não armazenam " "referências a outros tipos de objetos, ou que apenas armazenam referências a " "tipos atômicos (como números ou strings), não precisam fornecer nenhum " "suporte explicito para coleta de lixo." @@ -83,8 +81,8 @@ msgid "" "Once all the fields which may contain references to other containers are " "initialized, it must call :c:func:`PyObject_GC_Track`." msgstr "" -"Uma vez que todos os campos que podem conter referências a outros containers " -"foram inicializados, deve-se chamar :c:func:`PyObject_GC_Track`." +"Uma vez que todos os campos que podem conter referências a outros " +"contêineres foram inicializados, deve-se chamar :c:func:`PyObject_GC_Track`." #: ../../c-api/gcsupport.rst:34 msgid "" @@ -96,47 +94,47 @@ msgstr "" #: ../../c-api/gcsupport.rst:37 msgid "" -"Before fields which refer to other containers are invalidated, :c:func:" -"`PyObject_GC_UnTrack` must be called." +"Before fields which refer to other containers are " +"invalidated, :c:func:`PyObject_GC_UnTrack` must be called." msgstr "" -"Antes que os campos que fazer referência a outros containers sejam " +"Antes que os campos que fazer referência a outros contêineres sejam " "invalidados, :c:func:`PyObject_GC_UnTrack` deve ser chamado." #: ../../c-api/gcsupport.rst:40 msgid "" "The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." msgstr "" -"A memória destinada ao objeto deve ser desalocada usando :c:func:" -"`PyObject_GC_Del`." +"A memória destinada ao objeto deve ser desalocada " +"usando :c:func:`PyObject_GC_Del`." #: ../../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." +"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." +"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." +"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:62 msgid "" -"Analogous to :c:macro:`PyObject_NewVar` but for container objects with the :" -"c:macro:`Py_TPFLAGS_HAVE_GC` flag set." +"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:67 @@ -157,8 +155,8 @@ msgstr "" 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." +"number of fields, prefer using :c:type:`PyVarObject` " +"and :c:member:`~PyTypeObject.tp_itemsize` instead." msgstr "" #: ../../c-api/gcsupport.rst:88 @@ -217,18 +215,18 @@ msgstr "" #: ../../c-api/gcsupport.rst:136 msgid "" -"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` or :" -"c:macro:`PyObject_GC_NewVar`." +"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`." msgstr "" #: ../../c-api/gcsupport.rst:142 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." +"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:151 @@ -245,12 +243,12 @@ msgstr "" #: ../../c-api/gcsupport.rst:159 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." +"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:166 @@ -271,10 +269,10 @@ msgstr "" #: ../../c-api/gcsupport.rst:178 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*:" +"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:185 @@ -284,10 +282,21 @@ msgid "" "macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" msgstr "" +#: ../../c-api/gcsupport.rst:190 +msgid "" +"static int\n" +"my_traverse(Noddy *self, visitproc visit, void *arg)\n" +"{\n" +" Py_VISIT(self->foo);\n" +" Py_VISIT(self->bar);\n" +" return 0;\n" +"}" +msgstr "" + #: ../../c-api/gcsupport.rst:198 msgid "" -"The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" -"`inquiry` type, or ``NULL`` if the object is immutable." +"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:204 @@ -320,8 +329,8 @@ msgstr "" 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." +"returns ``0`` immediately. Errors during garbage collection are passed " +"to :data:`sys.unraisablehook`. This function does not raise exceptions." msgstr "" #: ../../c-api/gcsupport.rst:233 @@ -373,9 +382,9 @@ msgstr "" #: ../../c-api/gcsupport.rst:278 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 ``0`` to continue iteration, return " -"``1`` to stop iteration. Other return values are reserved for now so " -"behavior on returning anything else is undefined." +"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 ``0`` to continue " +"iteration, return ``1`` 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 index 9cefa6e61..a9846d74d 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,13 +31,13 @@ msgstr "Objetos Geradores" 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`." +"rather than explicitly calling :c:func:`PyGen_New` " +"or :c:func:`PyGen_NewWithQualName`." msgstr "" "Objetos geradores são o que o Python usa para implementar iteradores " "geradores. Eles são normalmente criados por iteração sobre uma função que " -"produz valores, em vez de invocar explicitamente :c:func:`PyGen_New` ou :c:" -"func:`PyGen_NewWithQualName`." +"produz valores, em vez de invocar explicitamente :c:func:`PyGen_New` " +"ou :c:func:`PyGen_NewWithQualName`." #: ../../c-api/gen.rst:15 msgid "The C structure used for generator objects." diff --git a/c-api/hash.po b/c-api/hash.po index 96bb10f98..634795b0d 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2024 -# Adorilson Bezerra , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-25 01:09+0000\n" -"PO-Revision-Date: 2024-02-23 14:15+0000\n" -"Last-Translator: Adorilson Bezerra , 2024\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/import.po b/c-api/import.po index 4538476f3..93cbb3273 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Ozeas Santos , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-08 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -30,9 +29,12 @@ msgstr "Importando módulos" #: ../../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 *`." +"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 "" +"Esta é uma função auxiliar em torno de :c:func:`PyImport_Import()`, que " +"recebe um :c:expr:`const char *` como argumento em vez de " +"um :c:expr:`PyObject *`." #: ../../c-api/import.rst:21 msgid "This function is a deprecated alias of :c:func:`PyImport_ImportModule`." @@ -46,10 +48,10 @@ msgid "" "module locks for most purposes, so this function's special behaviour isn't " "needed anymore." msgstr "" -"Essa função falhava em alguns casos, quando o bloqueio de importação era " -"mantido por outra thread. No Python 3.3, no entanto, o esquema de bloqueio " -"mudou passando a ser por módulo na maior parte, dessa forma, o comportamento " -"especial dessa função não é mais necessário." +"Essa função falhava em alguns casos, quando a trava de importação era " +"mantida por outra thread. No Python 3.3, no entanto, o esquema de trava " +"mudou passando a ser de travas por módulo na maior parte, dessa forma, o " +"comportamento especial dessa função não é mais necessário." #: ../../c-api/import.rst:34 msgid "" @@ -62,9 +64,10 @@ msgstr "" #: ../../c-api/import.rst:37 ../../c-api/import.rst:53 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." +"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 "" "O valor de retorno é uma nova referência ao módulo importado ou pacote de " "nível superior, ou ``NULL`` com uma exceção definida em caso de falha. Como " @@ -74,11 +77,11 @@ msgstr "" #: ../../c-api/import.rst:43 msgid "" -"Failing imports remove incomplete module objects, like with :c:func:" -"`PyImport_ImportModule`." +"Failing imports remove incomplete module objects, like " +"with :c:func:`PyImport_ImportModule`." msgstr "" -"As importações com falhas removem objetos incompletos do módulo, como em :c:" -"func:`PyImport_ImportModule`." +"As importações com falhas removem objetos incompletos do módulo, como " +"em :c:func:`PyImport_ImportModule`." #: ../../c-api/import.rst:49 msgid "" @@ -145,10 +148,10 @@ msgstr "" #: ../../c-api/import.rst:95 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." +"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 "" "Esta função não carrega ou importa o módulo; se o módulo não foi carregado, " "você receberá um objeto de módulo vazio. Use :c:func:`PyImport_ImportModule` " @@ -171,35 +174,55 @@ msgid "" "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 "" +"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 "" +"Dado um nome de módulo (possivelmente no formato ``pacote.módulo``) e um " +"objeto código lido de um arquivo bytecode Python ou obtido da função " +"embutida :func:`compile`, carrea o módulo. Retorna uma nova referência ao " +"objeto do módulo ou ``NULL`` com uma exceção definida se ocorrer um erro. " +"*name* é removido de :data:`sys.modules` em casos de erro, mesmo que *name* " +"já estivesse em :data:`sys.modules` na entrada " +"de :c:func:`PyImport_ExecCodeModule`. Deixar módulos incompletamente " +"inicializados em :data:`sys.modules` é perigoso, pois as importações desses " +"módulos não têm como saber que o objeto do módulo está em um estado " +"desconhecido (e provavelmente corrompido em relação às intenções do autor do " +"módulo)." #: ../../c-api/import.rst:123 msgid "" -"The module's :attr:`__spec__` and :attr:`__loader__` will be set, if not set " -"already, with the appropriate values. The spec's loader will be set to the " -"module's ``__loader__`` (if set) and to an instance of :class:`~importlib." -"machinery.SourceFileLoader` otherwise." +"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 "" +"Os atributos :attr:`~module.__spec__` e :attr:`~module.__loader__` do módulo " +"serão definidos, caso ainda não estejam, com os valores apropriados. O " +"carregador do spec será definido como o atributo :attr:`!__loader__` do " +"módulo (se definido) e, caso contrário, como uma instância " +"de :class:`~importlib.machinery.SourceFileLoader`." #: ../../c-api/import.rst:128 msgid "" -"The module's :attr:`__file__` attribute will be set to the code object's :" -"attr:`~codeobject.co_filename`. If applicable, :attr:`__cached__` will also " -"be set." +"The module's :attr:`~module.__file__` attribute will be set to the code " +"object's :attr:`~codeobject.co_filename`. If " +"applicable, :attr:`~module.__cached__` will also be set." msgstr "" +"O atributo :attr:`~module.__file__` do módulo será definido para " +"o :attr:`~codeobject.co_filename` do objeto código. Se " +"aplicável, :attr:`~module.__cached__` também será definido." #: ../../c-api/import.rst:132 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." +"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 "" -"Esta função recarregará o módulo se este já tiver sido importado. Veja :c:" -"func:`PyImport_ReloadModule` para forma desejada de recarregar um módulo." +"Esta função recarregará o módulo se este já tiver sido importado. " +"Veja :c:func:`PyImport_ReloadModule` para forma desejada de recarregar um " +"módulo." #: ../../c-api/import.rst:135 msgid "" @@ -211,25 +234,29 @@ msgstr "" #: ../../c-api/import.rst:138 msgid "" -"See also :c:func:`PyImport_ExecCodeModuleEx` and :c:func:" -"`PyImport_ExecCodeModuleWithPathnames`." +"See also :c:func:`PyImport_ExecCodeModuleEx` " +"and :c:func:`PyImport_ExecCodeModuleWithPathnames`." msgstr "" -"Veja também :c:func:`PyImport_ExecCodeModuleEx` e :c:func:" -"`PyImport_ExecCodeModuleWithPathnames`." +"Veja também :c:func:`PyImport_ExecCodeModuleEx` " +"e :c:func:`PyImport_ExecCodeModuleWithPathnames`." #: ../../c-api/import.rst:141 msgid "" -"The setting of :attr:`__cached__` and :attr:`__loader__` is deprecated. See :" -"class:`~importlib.machinery.ModuleSpec` for alternatives." +"The setting of :attr:`~module.__cached__` and :attr:`~module.__loader__` is " +"deprecated. See :class:`~importlib.machinery.ModuleSpec` for alternatives." msgstr "" +"A configuração de :attr:`~module.__cached__` e :attr:`~module.__loader__` " +"está descontinuada. Consulte :class:`~importlib.machinery.ModuleSpec` para " +"alternativas." #: ../../c-api/import.rst:149 msgid "" -"Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`__file__` attribute " -"of the module object is set to *pathname* if it is non-``NULL``." +"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 "" -"Como :c:func:`PyImport_ExecCodeModule`, mas o atributo :attr:`__file__` do " -"objeto módulo é definido como *pathname* se não for ``NULL``." +"Como :c:func:`PyImport_ExecCodeModule`, mas o " +"atributo :attr:`~module.__file__` do objeto módulo é definido como " +"*pathname* se não for ``NULL``." #: ../../c-api/import.rst:152 msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`." @@ -237,19 +264,22 @@ msgstr "Veja também :c:func:`PyImport_ExecCodeModuleWithPathnames`." #: ../../c-api/import.rst:157 msgid "" -"Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`__cached__` " +"Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`~module.__cached__` " "attribute of the module object is set to *cpathname* if it is non-``NULL``. " "Of the three functions, this is the preferred one to use." msgstr "" -"Como :c:func:`PyImport_ExecCodeModuleEx`, mas o atributo :attr:`__cached__` " -"do objeto módulo é definido como *cpathname* se não for ``NULL``. Das três " -"funções, esta é a preferida para usar." +"Como :c:func:`PyImport_ExecCodeModuleEx`, mas o " +"atributo :attr:`~module.__cached__` do objeto módulo é definido como " +"*cpathname* se não for ``NULL``. Das três funções, esta é a preferida para " +"usar." #: ../../c-api/import.rst:163 msgid "" -"Setting :attr:`__cached__` is deprecated. See :class:`~importlib.machinery." -"ModuleSpec` for alternatives." +"Setting :attr:`~module.__cached__` is deprecated. " +"See :class:`~importlib.machinery.ModuleSpec` for alternatives." msgstr "" +"A configuração de :attr:`~module.__cached__` está descontinuada. " +"Consulte :class:`~importlib.machinery.ModuleSpec` para alternativas." #: ../../c-api/import.rst:170 msgid "" @@ -265,13 +295,15 @@ msgstr "" #: ../../c-api/import.rst:176 msgid "" -"Uses :func:`!imp.source_from_cache()` in calculating the source path if only " +"Uses :func:`!imp.source_from_cache` in calculating the source path if only " "the bytecode path is provided." msgstr "" +"Usa :func:`!imp.source_from_cache` no cálculo do caminho de origem se apenas " +"o caminho do bytecode for fornecido." #: ../../c-api/import.rst:179 msgid "No longer uses the removed :mod:`!imp` module." -msgstr "" +msgstr "Não usa mais o módulo :mod:`!imp` removido." #: ../../c-api/import.rst:185 msgid "" @@ -295,13 +327,14 @@ msgid "" "authoritative and should be used instead of this function." msgstr "" "Retorna a string de tag mágica para nomes de arquivo de bytecode Python no " -"formato de :pep:`3147`. Tenha em mente que o valor em ``sys.implementation." -"cache_tag`` é autoritativo e deve ser usado no lugar desta função." +"formato de :pep:`3147`. Tenha em mente que o valor em " +"``sys.implementation.cache_tag`` é autoritativo e deve ser usado no lugar " +"desta função." #: ../../c-api/import.rst:203 msgid "" -"Return the dictionary used for the module administration (a.k.a. ``sys." -"modules``). Note that this is a per-interpreter variable." +"Return the dictionary used for the module administration (a.k.a. " +"``sys.modules``). Note that this is a per-interpreter variable." msgstr "" "Retorna o dicionário usado para a administração do módulo (também conhecido " "como ``sys.modules``). Observe que esta é uma variável por interpretador." @@ -323,17 +356,18 @@ msgid "" "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." +"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:227 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.)" +"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 "" "Carrega um módulo congelado chamado *name*. Retorna ``1`` para sucesso, " "``0`` se o módulo não for encontrado e ``-1`` com uma exceção definida se a " @@ -357,13 +391,23 @@ msgstr "" 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::" +"Python source distribution). Its definition, found in :file:`Include/" +"import.h`, is::" msgstr "" "Esta é a definição do tipo de estrutura para descritores de módulo " -"congelados, conforme gerado pelo utilitário :program:`freeze` (veja :file:" -"`Tools/freeze/` na distribuição fonte do Python). Sua definição, encontrada " -"em :file:`Include/import.h`, é::" +"congelados, conforme gerado pelo utilitário :program:`freeze` " +"(veja :file:`Tools/freeze/` na distribuição fonte do Python). Sua definição, " +"encontrada em :file:`Include/import.h`, é::" + +#: ../../c-api/import.rst:254 +msgid "" +"struct _frozen {\n" +" const char *name;\n" +" const unsigned char *code;\n" +" int size;\n" +" bool is_package;\n" +"};" +msgstr "" #: ../../c-api/import.rst:261 msgid "" @@ -381,10 +425,10 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" -"Este ponteiro é inicializado para apontar para um vetor de registros de :c:" -"struct:`_frozen`, terminado por um cujos membros são todos ``NULL`` ou zero. " -"Quando um módulo congelado é importado, ele é pesquisado nesta tabela. O " -"código de terceiros pode fazer truques com isso para fornecer uma coleção " +"Este ponteiro é inicializado para apontar para um vetor de registros " +"de :c:struct:`_frozen`, terminado por um cujos membros são todos ``NULL`` ou " +"zero. Quando um módulo congelado é importado, ele é pesquisado nesta tabela. " +"O código de terceiros pode fazer truques com isso para fornecer uma coleção " "criada dinamicamente de módulos congelados." #: ../../c-api/import.rst:275 @@ -400,8 +444,8 @@ msgstr "" "invólucro prático em torno de :c:func:`PyImport_ExtendInittab`, retornando " "``-1`` se a tabela não puder ser estendida. O novo módulo pode ser importado " "pelo nome *name* e usa a função *initfunc* como a função de inicialização " -"chamada na primeira tentativa de importação. Deve ser chamado antes de :c:" -"func:`Py_Initialize`." +"chamada na primeira tentativa de importação. Deve ser chamado antes " +"de :c:func:`Py_Initialize`." #: ../../c-api/import.rst:285 msgid "" @@ -422,12 +466,12 @@ msgstr "" #: ../../c-api/import.rst:302 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`." +"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:309 @@ -436,8 +480,8 @@ msgid "" "or :c:func:`PyImport_ExtendInittab` must be called before each Python " "initialization." msgstr "" -"Se Python é inicializado várias vezes, :c:func:`PyImport_AppendInittab` ou :" -"c:func:`PyImport_ExtendInittab` devem ser chamados antes de cada " +"Se Python é inicializado várias vezes, :c:func:`PyImport_AppendInittab` " +"ou :c:func:`PyImport_ExtendInittab` devem ser chamados antes de cada " "inicialização do Python." #: ../../c-api/import.rst:11 diff --git a/c-api/index.po b/c-api/index.po index be8f66854..76cde13ae 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Marco Rougeth , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:48+0000\n" -"Last-Translator: Marco Rougeth , 2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,11 +30,11 @@ msgstr "Manual de referência da 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." +"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 "" "Este manual documenta a API usada por programadores C e C++ que desejam " -"escrever módulos de extensões ou embutir Python. É um complemento para :ref:" -"`extending-index`, que descreve os princípios gerais da escrita de extensões " -"mas não documenta as funções da API em detalhes." +"escrever módulos de extensões ou embutir Python. É um complemento " +"para :ref:`extending-index`, que descreve os princípios gerais da escrita de " +"extensões mas não documenta as funções da API em detalhes." diff --git a/c-api/init.po b/c-api/init.po index 2bd7c2f55..8a6f13545 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -1,38 +1,32 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Raphael Mendonça, 2021 -# Rafael Marques , 2021 -# a76d6fb6142d7607ab0526dcbddb02d7_7bf0da0 <3b5fb0f281c8dfb4c0170f2ee2a6cfcf_843623>, 2021 -# Andre Weber, 2021 -# Rodrigo Cândido, 2022 -# Claudio Rogerio Carvalho Filho , 2023 -# Marco Rougeth , 2023 -# Rafael Fontenelle , 2023 +# willian ohara, 2026 +# Rafael Fontenelle , 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-17 19:14+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2026\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" -msgstr "Inicialização, Finalização e Threads" +msgstr "Inicialização, finalização e threads" #: ../../c-api/init.rst:10 msgid "See also :ref:`Python Initialization Configuration `." @@ -41,7 +35,7 @@ msgstr "" #: ../../c-api/init.rst:15 msgid "Before Python Initialization" -msgstr "Antes da Inicialização do Python" +msgstr "Antes da inicialização do Python" #: ../../c-api/init.rst:17 msgid "" @@ -64,7 +58,7 @@ msgstr "" #: ../../c-api/init.rst:24 msgid "Configuration functions:" -msgstr "Funções de Configuração" +msgstr "Funções de configuração" #: ../../c-api/init.rst:26 msgid ":c:func:`PyImport_AppendInittab`" @@ -76,7 +70,7 @@ msgstr ":c:func:`PyImport_ExtendInittab`" #: ../../c-api/init.rst:28 msgid ":c:func:`!PyInitFrozenExtensions`" -msgstr "" +msgstr ":c:func:`!PyInitFrozenExtensions`" #: ../../c-api/init.rst:29 msgid ":c:func:`PyMem_SetAllocator`" @@ -120,7 +114,7 @@ msgstr ":c:func:`PySys_ResetWarnOptions`" #: ../../c-api/init.rst:40 msgid "Informative functions:" -msgstr "Funções Informativas:" +msgstr "Funções informativas:" #: ../../c-api/init.rst:42 msgid ":c:func:`Py_IsInitialized`" @@ -184,17 +178,13 @@ msgstr ":c:func:`PyMem_RawFree`" #: ../../c-api/init.rst:64 msgid "" -"The following functions **should not be called** before :c:func:" -"`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" -"`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:" -"`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:" -"`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." +"The following functions **should not be called** " +"before :c:func:`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:`Py_GetProgramName` " +"and :c:func:`PyEval_InitThreads`." msgstr "" -"As seguintes funções **não devem ser chamadas** antes :c:func:" -"`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" -"`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:" -"`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:" -"`Py_GetProgramName` e :c:func:`PyEval_InitThreads`." +"As seguintes funções **não devem ser chamadas** " +"antes :c:func:`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:`Py_GetProgramName` " +"e :c:func:`PyEval_InitThreads`." #: ../../c-api/init.rst:74 msgid "Global configuration variables" @@ -203,8 +193,8 @@ msgstr "Variáveis de configuração global" #: ../../c-api/init.rst:76 msgid "" "Python has variables for the global configuration to control different " -"features and options. By default, these flags are controlled by :ref:" -"`command line options `." +"features and options. By default, these flags are controlled " +"by :ref:`command line options `." msgstr "" "Python tem variáveis para a configuração global a fim de controlar " "diferentes características e opções. Por padrão, estes sinalizadores são " @@ -214,31 +204,34 @@ msgstr "" #: ../../c-api/init.rst:80 msgid "" "When a flag is set by an option, the value of the flag is the number of " -"times that the option was set. For example, ``-b`` sets :c:data:" -"`Py_BytesWarningFlag` to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to " -"2." +"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 "" "Quando um sinalizador é definido por uma opção, o valor do sinalizador é o " -"número de vezes que a opção foi definida. Por exemplo,``-b`` define :c:data:" -"`Py_BytesWarningFlag` para 1 e ``-bb`` define :c:data:`Py_BytesWarningFlag` " -"para 2." +"número de vezes que a opção foi definida. Por exemplo, ``-b`` " +"define :c:data:`Py_BytesWarningFlag` para 1 e ``-bb`` " +"define :c:data:`Py_BytesWarningFlag` para 2." #: ../../c-api/init.rst:86 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"bytes_warning` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.bytes_warning` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.bytes_warning` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:90 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``." +"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 "" -"Emite um aviso ao comparar :class:`bytes` ou :class:`bytearray` com :class:" -"`str` ou :class:`bytes` com :class:`int`. Emite um erro se for maior ou " -"igual a ``2``." +"Emite um aviso ao comparar :class:`bytes` ou :class:`bytearray` " +"com :class:`str` ou :class:`bytes` com :class:`int`. Emite um erro se for " +"maior ou igual a ``2``." #: ../../c-api/init.rst:94 msgid "Set by the :option:`-b` option." @@ -246,10 +239,13 @@ msgstr "Definida pela opção :option:`-b`." #: ../../c-api/init.rst:100 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"parser_debug` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.parser_debug` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.parser_debug` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:104 msgid "" @@ -264,22 +260,25 @@ msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." msgstr "" -"Definida pela a opção :option:`-d` e a variável de ambiente :envvar:" -"`PYTHONDEBUG`." +"Definida pela a opção :option:`-d` e a variável de " +"ambiente :envvar:`PYTHONDEBUG`." #: ../../c-api/init.rst:114 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"write_bytecode` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.write_bytecode` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.write_bytecode` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:118 msgid "" "If set to non-zero, Python won't try to write ``.pyc`` files on the import " "of source modules." msgstr "" -"Se definido como diferente de zero, o Python não tentará escrever arquivos " +"Se definida como diferente de zero, o Python não tentará escrever arquivos " "``.pyc`` na importação de módulos fonte." #: ../../c-api/init.rst:121 @@ -287,34 +286,44 @@ msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." msgstr "" -"Definida pela opção :option:`-B` e pela variável de ambiente :envvar:" -"`PYTHONDONTWRITEBYTECODE`." +"Definida pela opção :option:`-B` e pela variável de " +"ambiente :envvar:`PYTHONDONTWRITEBYTECODE`." #: ../../c-api/init.rst:128 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"pathconfig_warnings` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.pathconfig_warnings` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.pathconfig_warnings` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:132 msgid "" -"Suppress error messages when calculating the module search path in :c:func:" -"`Py_GetPath`." +"Suppress error messages when calculating the module search path " +"in :c:func:`Py_GetPath`." msgstr "" -"Suprime mensagens de erro ao calcular o caminho de pesquisa do módulo em :c:" -"func:`Py_GetPath`." +"Suprime mensagens de erro ao calcular o caminho de pesquisa do módulo " +"em :c:func:`Py_GetPath`." #: ../../c-api/init.rst:135 msgid "Private flag used by ``_freeze_module`` and ``frozenmain`` programs." msgstr "" +"Sinalizador privado usado pelos programas ``_freeze_module`` e " +"``frozenmain``." #: ../../c-api/init.rst:141 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, " +"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 "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração de :c:member:`PyConfig.hash_seed` " +"e :c:member:`PyConfig.use_hash_seed` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:146 msgid "" @@ -329,21 +338,27 @@ msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." msgstr "" -"Se o sinalizador for diferente de zero, lê a variável de ambiente :envvar:" -"`PYTHONHASHSEED` para inicializar a semente de hash secreta." +"Se o sinalizador for diferente de zero, lê a variável de " +"ambiente :envvar:`PYTHONHASHSEED` para inicializar a semente de hash secreta." #: ../../c-api/init.rst:156 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"use_environment` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.use_environment` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.use_environment` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:160 msgid "" -"Ignore all :envvar:`!PYTHON*` environment variables, e.g. :envvar:" -"`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." +"Ignore all :envvar:`!PYTHON*` environment variables, " +"e.g. :envvar:`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" +"Ignora todas as variáveis de ambiente :envvar:`!PYTHON*`, por " +"exemplo :envvar:`PYTHONPATH` e :envvar:`PYTHONHOME`, que podem estar " +"definidas." #: ../../c-api/init.rst:163 msgid "Set by the :option:`-E` and :option:`-I` options." @@ -351,10 +366,13 @@ msgstr "Definida pelas opções :option:`-E` e :option:`-I`." #: ../../c-api/init.rst:169 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"inspect` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.inspect` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.inspect` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:173 msgid "" @@ -371,15 +389,18 @@ msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." msgstr "" -"Definida pela opção :option:`-i` e pela variável de ambiente :envvar:" -"`PYTHONINSPECT`." +"Definida pela opção :option:`-i` e pela variável de " +"ambiente :envvar:`PYTHONINSPECT`." #: ../../c-api/init.rst:184 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"interactive` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.interactive` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.interactive` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:188 msgid "Set by the :option:`-i` option." @@ -387,10 +408,13 @@ msgstr "Definida pela opção :option:`-i`." #: ../../c-api/init.rst:194 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"isolated` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.isolated` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.isolated` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:198 msgid "" @@ -407,10 +431,14 @@ msgstr "Definida pela opção :option:`-I`." #: ../../c-api/init.rst:209 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 `." +"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 "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyPreConfig.legacy_windows_fs_encoding` deve ser " +"usada em seu lugar, consulte :ref:`Configuração de inicialização do Python " +"`." #: ../../c-api/init.rst:213 msgid "" @@ -420,68 +448,78 @@ msgid "" msgstr "" "Se o sinalizador for diferente de zero, use a codificação ``mbcs`` com o " "tratador de erros ``replace``, em vez da codificação UTF-8 com o tratador de " -"erros ``surrogatepass``, para a codificação do sistema de arquivos e :term:" -"`tratador de erros e codificação do sistema de arquivos`." +"erros ``surrogatepass``, para a codificação do sistema de arquivos " +"e :term:`tratador de erros e codificação do sistema de arquivos`." #: ../../c-api/init.rst:217 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." msgstr "" -"Definida como ``1`` se a variável de ambiente :envvar:" -"`PYTHONLEGACYWINDOWSFSENCODING` estiver definida como uma string não vazia." +"Definida como ``1`` se a variável de " +"ambiente :envvar:`PYTHONLEGACYWINDOWSFSENCODING` estiver definida como uma " +"string não vazia." #: ../../c-api/init.rst:220 msgid "See :pep:`529` for more details." msgstr "Veja :pep:`529` para mais detalhes." #: ../../c-api/init.rst:222 ../../c-api/init.rst:240 -msgid ":ref:`Availability `: Windows." -msgstr ":ref:`Disponibilidade `: Windows." +msgid "Availability" +msgstr "Disponibilidade" #: ../../c-api/init.rst:228 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"legacy_windows_stdio` should be used instead, see :ref:`Python " -"Initialization Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.legacy_windows_stdio` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.legacy_windows_stdio` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:232 msgid "" -"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!io." -"_WindowsConsoleIO` for :mod:`sys` standard streams." +"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!" +"io._WindowsConsoleIO` for :mod:`sys` standard streams." msgstr "" +"Se o sinalizador for diferente de zero, usa :class:`io.FileIO` em vez " +"de :class:`!io._WindowsConsoleIO` para fluxos padrão :mod:`sys`." #: ../../c-api/init.rst:235 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" -"Definida como ``1`` se a variável de ambiente :envvar:" -"`PYTHONLEGACYWINDOWSSTDIO` estiver definida como uma string não vazia." +"Definida como ``1`` se a variável de " +"ambiente :envvar:`PYTHONLEGACYWINDOWSSTDIO` estiver definida como uma string " +"não vazia." #: ../../c-api/init.rst:238 msgid "See :pep:`528` for more details." -msgstr "Veja :pep:`528` para mais detalhes." +msgstr "Veja a :pep:`528` para mais detalhes." #: ../../c-api/init.rst:246 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"site_import` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.site_import` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.site_import` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:250 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)." +"manipulations if :mod:`site` is explicitly imported later " +"(call :func:`site.main` if you want them to be triggered)." msgstr "" -"Desabilita a importação do módulo :mod:`site` e as manipulações dependentes " -"do site de :data:`sys.path` que isso acarreta. Também desabilita essas " -"manipulações se :mod:`site` for explicitamente importado mais tarde (chame :" -"func:`site.main` se você quiser que eles sejam acionados)." +"Desabilita a importação do módulo :mod:`site` e as manipulações " +"do :data:`sys.path` que isso acarreta. Também desabilita essas manipulações " +"se :mod:`site` for explicitamente importado mais tarde " +"(chame :func:`site.main` se você quiser que eles sejam acionados)." #: ../../c-api/init.rst:255 msgid "Set by the :option:`-S` option." @@ -489,54 +527,63 @@ msgstr "Definida pela opção :option:`-S`." #: ../../c-api/init.rst:261 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"user_site_directory` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.user_site_directory` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.user_site_directory` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:265 msgid "" -"Don't add the :data:`user site-packages directory ` to :data:" -"`sys.path`." +"Don't add the :data:`user site-packages directory ` " +"to :data:`sys.path`." msgstr "" -"Não adiciona o :data:`diretório site-packages de usuário ` a :data:`sys.path`." +"Não adiciona o :data:`diretório site-packages do usuário ` " +"a :data:`sys.path`." #: ../../c-api/init.rst:268 msgid "" -"Set by the :option:`-s` and :option:`-I` options, and the :envvar:" -"`PYTHONNOUSERSITE` environment variable." +"Set by the :option:`-s` and :option:`-I` options, and " +"the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" "Definida pelas opções :option:`-s` e :option:`-I`, e pela variável de " "ambiente :envvar:`PYTHONNOUSERSITE`." #: ../../c-api/init.rst:275 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"optimization_level` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.optimization_level` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.optimization_level` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:279 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." msgstr "" -"Definida pela opção :option:`-O` e pela variável de ambiente :envvar:" -"`PYTHONOPTIMIZE`." +"Definida pela opção :option:`-O` e pela variável de " +"ambiente :envvar:`PYTHONOPTIMIZE`." #: ../../c-api/init.rst:286 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"quiet` should be used instead, see :ref:`Python Initialization Configuration " -"`." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.quiet` should be used instead, see :ref:`Python " +"Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.quiet` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:290 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "" -"Não exibe as mensagens de direito autoral e de versão nem mesmo no modo " +"Não exibe as mensagens de direitos autorais e de versão nem mesmo no modo " "interativo." #: ../../c-api/init.rst:292 @@ -545,10 +592,13 @@ msgstr "Definida pela opção :option:`-q`." #: ../../c-api/init.rst:300 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"buffered_stdio` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.buffered_stdio` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.buffered_stdio` deve ser usada em seu " +"lugar, consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:304 msgid "Force the stdout and stderr streams to be unbuffered." @@ -559,15 +609,18 @@ msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." msgstr "" -"Definida pela opção :option:`-u` e pela variável de ambiente :envvar:" -"`PYTHONUNBUFFERED`." +"Definida pela opção :option:`-u` e pela variável de " +"ambiente :envvar:`PYTHONUNBUFFERED`." #: ../../c-api/init.rst:313 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"verbose` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.verbose` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: a " +"configuração :c:member:`PyConfig.verbose` deve ser usada em seu lugar, " +"consulte :ref:`Configuração de inicialização do Python `." #: ../../c-api/init.rst:317 msgid "" @@ -587,8 +640,8 @@ msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." msgstr "" -"Definida pela a opção :option:`-v` e a variável de ambiente :envvar:" -"`PYTHONVERBOSE`." +"Definida pela a opção :option:`-v` e a variável de " +"ambiente :envvar:`PYTHONVERBOSE`." #: ../../c-api/init.rst:329 msgid "Initializing and finalizing the interpreter" @@ -597,8 +650,9 @@ msgstr "Inicializando e encerrando o interpretador" #: ../../c-api/init.rst:347 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." +"this should be called before using any other Python/C API functions; " +"see :ref:`Before Python Initialization ` for the few " +"exceptions." msgstr "" "Inicializa o interpretador Python. Em uma aplicação que incorpora o Python, " "isto deve ser chamado antes do uso de qualquer outra função do Python/C API; " @@ -617,8 +671,8 @@ msgstr "" #: ../../c-api/init.rst:359 ../../c-api/init.rst:373 msgid "" -"Use the :c:func:`Py_InitializeFromConfig` function to customize the :ref:" -"`Python Initialization Configuration `." +"Use the :c:func:`Py_InitializeFromConfig` function to customize " +"the :ref:`Python Initialization Configuration `." msgstr "" #: ../../c-api/init.rst:363 @@ -626,6 +680,8 @@ 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 "" +"No Windows, altera o modo do console de ``O_TEXT`` para ``O_BINARY``, o que " +"também afetará usos não Python do console usando o Runtime C." #: ../../c-api/init.rst:369 msgid "" @@ -640,20 +696,42 @@ msgid "" "false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " "false until :c:func:`Py_Initialize` is called again." msgstr "" +"Retorna verdadeiro (diferente de zero) quando o interpretador Python foi " +"inicializado, falso (zero) se não. Após :c:func:`Py_FinalizeEx` ser chamado, " +"isso retorna falso até que :c:func:`Py_Initialize` seja chamado novamente." #: ../../c-api/init.rst:386 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`. Ideally, this frees all memory " -"allocated by the Python interpreter. This is a no-op when called for a " -"second time (without calling :c:func:`Py_Initialize` again first). Normally " -"the return value is ``0``. If there were errors during finalization " +"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`. Ideally, this " +"frees all memory allocated by the Python interpreter. This is a no-op when " +"called for a second time (without calling :c:func:`Py_Initialize` again " +"first)." +msgstr "" + +#: ../../c-api/init.rst:393 +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 "" +"Como isso é o inverso de :c:func:`Py_Initialize`, ele deve ser chamado na " +"mesma thread com o mesmo interpretador ativo. Isso significa a thread " +"principal e o interpretador principal. Isso nunca deve ser chamado " +"enquanto :c:func:`Py_RunMain` estiver em execução." + +#: ../../c-api/init.rst:398 +msgid "" +"Normally the return value is ``0``. If there were errors during finalization " "(flushing buffered data), ``-1`` is returned." msgstr "" +"Normalmente, o valor de retorno é ``0``. Se houver erros durante a " +"finalização (limpeza de dados armazenados em buffer), ``-1`` será retornado." -#: ../../c-api/init.rst:395 +#: ../../c-api/init.rst:402 msgid "" "This function is provided for a number of reasons. An embedding application " "might want to restart Python without having to restart the application " @@ -663,8 +741,15 @@ msgid "" "in an application a developer might want to free all memory allocated by " "Python before exiting from the application." msgstr "" +"Esta função é fornecida por vários motivos. Uma aplicação de incorporação " +"pode querer reiniciar o Python sem precisar reiniciar a própria aplicação. " +"Uma aplicação que carregou o interpretador Python de uma biblioteca " +"carregável dinamicamente (ou DLL) pode querer liberar toda a memória alocada " +"pelo Python antes de descarregar a DLL. Durante uma busca por vazamentos de " +"memória em uma aplicação, um desenvolvedor pode querer liberar toda a " +"memória alocada pelo Python antes de sair da aplicação." -#: ../../c-api/init.rst:403 +#: ../../c-api/init.rst:410 msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " "done in random order; this may cause destructors (:meth:`~object.__del__` " @@ -679,76 +764,82 @@ msgid "" "more than once." msgstr "" -#: ../../c-api/init.rst:414 +#: ../../c-api/init.rst:421 msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"_PySys_ClearAuditHooks`` with no arguments." +"Raises an :ref:`auditing event ` " +"``cpython._PySys_ClearAuditHooks`` with no arguments." msgstr "" -"Levanta um :ref:`evento de auditoria ` ``cpython." -"_PySys_ClearAuditHooks`` com nenhum argumento." +"Levanta um :ref:`evento de auditoria ` " +"``cpython._PySys_ClearAuditHooks`` sem argumentos." -#: ../../c-api/init.rst:420 +#: ../../c-api/init.rst:427 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" +"Esta é uma versão retrocompatível de :c:func:`Py_FinalizeEx` que " +"desconsidera o valor de retorno." -#: ../../c-api/init.rst:425 +#: ../../c-api/init.rst:432 msgid "Process-wide parameters" -msgstr "" +msgstr "Parâmetros de todo o processo" -#: ../../c-api/init.rst:435 +#: ../../c-api/init.rst:442 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"stdio_encoding` and :c:member:`PyConfig.stdio_errors` should be used " -"instead, see :ref:`Python Initialization Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.stdio_encoding` " +"and :c:member:`PyConfig.stdio_errors` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" -#: ../../c-api/init.rst:440 +#: ../../c-api/init.rst:447 msgid "" "This function should be called before :c:func:`Py_Initialize`, if it is " "called at all. It specifies which encoding and error handling to use with " "standard IO, with the same meanings as in :func:`str.encode`." msgstr "" -#: ../../c-api/init.rst:444 +#: ../../c-api/init.rst:451 msgid "" "It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " "control IO encoding when the environment variable does not work." msgstr "" -#: ../../c-api/init.rst:447 +#: ../../c-api/init.rst:454 msgid "" "*encoding* and/or *errors* may be ``NULL`` to use :envvar:`PYTHONIOENCODING` " "and/or default values (depending on other settings)." msgstr "" -#: ../../c-api/init.rst:451 +#: ../../c-api/init.rst:458 msgid "" "Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " "handler, regardless of this (or any other) setting." msgstr "" -#: ../../c-api/init.rst:454 +#: ../../c-api/init.rst:461 msgid "" "If :c:func:`Py_FinalizeEx` is called, this function will need to be called " "again in order to affect subsequent calls to :c:func:`Py_Initialize`." msgstr "" -#: ../../c-api/init.rst:457 +#: ../../c-api/init.rst:464 msgid "" "Returns ``0`` if successful, a nonzero value on error (e.g. calling after " "the interpreter has already been initialized)." msgstr "" -#: ../../c-api/init.rst:472 +#: ../../c-api/init.rst:479 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"program_name` should be used instead, see :ref:`Python Initialization " -"Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.program_name` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" +"Esta API é mantida para compatibilidade com versões anteriores: em vez " +"disso, deve-se usar a configuração :c:member:`PyConfig.program_name`, " +"consulte :ref:`Configuração de inicialização do Python `." -#: ../../c-api/init.rst:476 +#: ../../c-api/init.rst:483 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 " @@ -772,32 +863,38 @@ msgstr "" "programa. Nenhum código no interpretador Python mudará o conteúdo deste " "armazenamento." -#: ../../c-api/init.rst:487 +#: ../../c-api/init.rst:494 ../../c-api/init.rst:760 ../../c-api/init.rst:796 +#: ../../c-api/init.rst:822 msgid "" -"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" -"`wchar_t *` string." +"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get " +"a :c:expr:`wchar_t*` string." msgstr "" +"Use :c:func:`Py_DecodeLocale` para decodificar uma string de bytes e obter " +"uma string :c:expr:`wchar_t*`." -#: ../../c-api/init.rst:497 +#: ../../c-api/init.rst:504 msgid "" "Return the program name set with :c:func:`Py_SetProgramName`, or the " "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" -#: ../../c-api/init.rst:501 ../../c-api/init.rst:520 ../../c-api/init.rst:561 -#: ../../c-api/init.rst:580 ../../c-api/init.rst:604 ../../c-api/init.rst:827 +#: ../../c-api/init.rst:508 ../../c-api/init.rst:527 ../../c-api/init.rst:568 +#: ../../c-api/init.rst:587 ../../c-api/init.rst:611 ../../c-api/init.rst:834 msgid "" "This function should not be called before :c:func:`Py_Initialize`, otherwise " "it returns ``NULL``." msgstr "" +"Esta função não deve ser chamada antes de :c:func:`Py_Initialize`, caso " +"contrário ela retorna ``NULL``." -#: ../../c-api/init.rst:504 ../../c-api/init.rst:523 ../../c-api/init.rst:564 -#: ../../c-api/init.rst:583 ../../c-api/init.rst:609 ../../c-api/init.rst:830 +#: ../../c-api/init.rst:511 ../../c-api/init.rst:530 ../../c-api/init.rst:571 +#: ../../c-api/init.rst:590 ../../c-api/init.rst:616 ../../c-api/init.rst:837 msgid "It now returns ``NULL`` if called before :c:func:`Py_Initialize`." msgstr "" +"Agora retorna ``NULL`` se for chamada antes de :c:func:`Py_Initialize`." -#: ../../c-api/init.rst:510 +#: ../../c-api/init.rst:517 msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -811,21 +908,21 @@ msgid "" "also the next function." msgstr "" -#: ../../c-api/init.rst:529 +#: ../../c-api/init.rst:536 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " "with :c:func:`Py_SetProgramName` and some environment variables; for " "example, if the program name is ``'/usr/local/bin/python'``, the exec-prefix " "is ``'/usr/local'``. The returned string points into static storage; the " -"caller should not modify its value. This corresponds to the :makevar:" -"`exec_prefix` variable in the top-level :file:`Makefile` and the ``--exec-" -"prefix`` argument to the :program:`configure` script at build time. The " -"value is available to Python code as ``sys.exec_prefix``. It is only useful " -"on Unix." +"caller should not modify its value. This corresponds to " +"the :makevar:`exec_prefix` variable in the top-level :file:`Makefile` and " +"the ``--exec-prefix`` argument to the :program:`configure` script at build " +"time. The value is available to Python code as ``sys.exec_prefix``. It is " +"only useful on Unix." msgstr "" -#: ../../c-api/init.rst:539 +#: ../../c-api/init.rst:546 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -833,8 +930,14 @@ msgid "" "files may be installed in the :file:`/usr/local/plat` subtree while platform " "independent may be installed in :file:`/usr/local`." msgstr "" +"Contexto: O exec-prefix difere do prefixo padrão quando arquivos dependentes " +"da plataforma (como executáveis e bibliotecas compartilhadas) são instalados " +"em uma árvore de diretórios diferente. Em uma instalação típica, arquivos " +"dependentes da plataforma podem ser instalados na subárvore :file:`/usr/" +"local/plat`, enquanto arquivos independentes da plataforma podem ser " +"instalados em :file:`/usr/local`." -#: ../../c-api/init.rst:545 +#: ../../c-api/init.rst:552 msgid "" "Generally speaking, a platform is a combination of hardware and software " "families, e.g. Sparc machines running the Solaris 2.x operating system are " @@ -847,16 +950,31 @@ msgid "" "Note that compiled Python bytecode files are platform independent (but not " "independent from the Python version by which they were compiled!)." msgstr "" +"De modo geral, uma plataforma é uma combinação de famílias de hardware e " +"software. Por exemplo, máquinas Sparc executando o sistema operacional " +"Solaris 2.x são consideradas a mesma plataforma, mas máquinas Intel " +"executando Solaris 2.x são outra plataforma, e máquinas Intel executando " +"Linux são uma terceira. Diferentes revisões principais do mesmo sistema " +"operacional geralmente também formam plataformas diferentes. Sistemas " +"operacionais não-Unix são um caso à parte; as estratégias de instalação " +"nesses sistemas são tão diferentes que o prefixo e o prefixo de execução são " +"irrelevantes e definidos como uma string vazia. Observe que arquivos de " +"bytecode Python compilados são independentes de plataforma (mas não " +"independentes da versão do Python com a qual foram compilados!)." -#: ../../c-api/init.rst:556 +#: ../../c-api/init.rst:563 msgid "" -"System administrators will know how to configure the :program:`mount` or :" -"program:`automount` programs to share :file:`/usr/local` between platforms " -"while having :file:`/usr/local/plat` be a different filesystem for each " -"platform." +"System administrators will know how to configure the :program:`mount` " +"or :program:`automount` programs to share :file:`/usr/local` between " +"platforms while having :file:`/usr/local/plat` be a different filesystem for " +"each platform." msgstr "" +"Os administradores de sistema saberão como configurar os " +"programas :program:`mount` ou :program:`automount` para compartilhar o " +"arquivo :file:`/usr/local` entre plataformas, mantendo o arquivo :file:`/usr/" +"local/plat` como um sistema de arquivos diferente para cada plataforma." -#: ../../c-api/init.rst:574 +#: ../../c-api/init.rst:581 msgid "" "Return the full program name of the Python executable; this is computed as " "a side-effect of deriving the default module search path from the program " @@ -865,7 +983,7 @@ msgid "" "available to Python code as ``sys.executable``." msgstr "" -#: ../../c-api/init.rst:594 +#: ../../c-api/init.rst:601 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:func:`Py_SetProgramName` above) and some environment " @@ -878,41 +996,40 @@ msgid "" "for loading modules." msgstr "" -#: ../../c-api/init.rst:620 +#: ../../c-api/init.rst:627 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"module_search_paths` and :c:member:`PyConfig.module_search_paths_set` should " -"be used instead, see :ref:`Python Initialization Configuration `." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.module_search_paths` " +"and :c:member:`PyConfig.module_search_paths_set` should be used instead, " +"see :ref:`Python Initialization Configuration `." msgstr "" -#: ../../c-api/init.rst:625 +#: ../../c-api/init.rst:632 msgid "" -"Set the default module search path. If this function is called before :c:" -"func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to compute a " -"default search path but uses the one provided instead. This is useful if " -"Python is embedded by an application that has full knowledge of the location " -"of all modules. The path components should be separated by the platform " -"dependent delimiter character, which is ``':'`` on Unix and macOS, ``';'`` " -"on Windows." +"Set the default module search path. If this function is called " +"before :c:func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to " +"compute a default search path but uses the one provided instead. This is " +"useful if Python is embedded by an application that has full knowledge of " +"the location of all modules. The path components should be separated by the " +"platform dependent delimiter character, which is ``':'`` on Unix and macOS, " +"``';'`` on Windows." msgstr "" -#: ../../c-api/init.rst:633 +#: ../../c-api/init.rst:640 msgid "" "This also causes :data:`sys.executable` to be set to the program full path " -"(see :c:func:`Py_GetProgramFullPath`) and for :data:`sys.prefix` and :data:" -"`sys.exec_prefix` to be empty. It is up to the caller to modify these if " -"required after calling :c:func:`Py_Initialize`." +"(see :c:func:`Py_GetProgramFullPath`) and for :data:`sys.prefix` " +"and :data:`sys.exec_prefix` to be empty. It is up to the caller to modify " +"these if required after calling :c:func:`Py_Initialize`." msgstr "" -#: ../../c-api/init.rst:638 ../../c-api/init.rst:753 ../../c-api/init.rst:789 -#: ../../c-api/init.rst:815 +#: ../../c-api/init.rst:645 msgid "" -"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" -"`wchar_*` string." +"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get " +"a :c:expr:`wchar_*` string." msgstr "" -#: ../../c-api/init.rst:641 +#: ../../c-api/init.rst:648 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." @@ -920,15 +1037,15 @@ msgstr "" "O argumento caminho é copiado internamente, então o chamador pode liberá-lo " "depois da finalização da chamada." -#: ../../c-api/init.rst:644 +#: ../../c-api/init.rst:651 msgid "" "The program full path is now used for :data:`sys.executable`, instead of the " "program name." msgstr "" -"O caminho completo do programa agora é utilizado para :data:`sys." -"executable`, em vez do nome do programa." +"O caminho completo do programa agora é utilizado " +"para :data:`sys.executable`, em vez do nome do programa." -#: ../../c-api/init.rst:653 +#: ../../c-api/init.rst:660 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" @@ -936,20 +1053,29 @@ msgstr "" "Retorna a verão deste interpretador Python. Esta é uma string que se parece " "com ::" -#: ../../c-api/init.rst:660 +#: ../../c-api/init.rst:663 +msgid "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" +msgstr "\"3.0a5+ (py3k:63103M, May 12 2008, 00:53:55) \\n[GCC 4.2.3]\"" + +#: ../../c-api/init.rst:667 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`." +"not modify its value. The value is available to Python code " +"as :data:`sys.version`." msgstr "" +"A primeira palavra (até o primeiro espaço em branco) representa a versão " +"atual do Python; os primeiros caracteres indicam a versão principal e a " +"versão secundária, separados por um ponto. A string retornada aponta para um " +"armazenamento estático; o chamador não deve modificar seu valor. O valor " +"fica disponível para o código Python como :data:`sys.version`." -#: ../../c-api/init.rst:665 +#: ../../c-api/init.rst:672 msgid "See also the :c:var:`Py_Version` constant." -msgstr "" +msgstr "Veja também a constante :c:var:`Py_Version`." -#: ../../c-api/init.rst:672 +#: ../../c-api/init.rst:679 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -959,8 +1085,15 @@ msgid "" "into static storage; the caller should not modify its value. The value is " "available to Python code as ``sys.platform``." msgstr "" +"Retorna o identificador da plataforma atual. No Unix, este identificador é " +"formado pelo nome \"oficial\" do sistema operacional, convertido para " +"minúsculas, seguido pelo número da revisão principal; por exemplo, para " +"Solaris 2.x, também conhecido como SunOS 5.x, o valor é ``'sunos5'``. No " +"macOS, é ``'darwin'``. No Windows, é ``'win'``. A string retornada aponta " +"para um armazenamento estático; o chamador não deve modificar seu valor. O " +"valor está disponível para o código Python como ``sys.platform``." -#: ../../c-api/init.rst:683 +#: ../../c-api/init.rst:690 msgid "" "Return the official copyright string for the current Python version, for " "example" @@ -968,17 +1101,20 @@ msgstr "" "Retorna a string oficial de direitos autoriais para a versão atual do " "Python, por exemplo" -#: ../../c-api/init.rst:685 +#: ../../c-api/init.rst:692 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -msgstr "" +msgstr "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -#: ../../c-api/init.rst:689 +#: ../../c-api/init.rst:696 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 "" +"A string retornada aponta para o armazenamento estático; o chamador não deve " +"modificar o seu valor. O valor está disponível para o código Python como " +"``sys.copyright``." -#: ../../c-api/init.rst:695 +#: ../../c-api/init.rst:702 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" @@ -986,14 +1122,21 @@ msgstr "" "Retorna uma indicação do compilador usado para construir a atual versão do " "Python, em colchetes, por exemplo::" -#: ../../c-api/init.rst:702 ../../c-api/init.rst:716 +#: ../../c-api/init.rst:705 +msgid "\"[GCC 2.7.2.2]\"" +msgstr "\"[GCC 2.7.2.2]\"" + +#: ../../c-api/init.rst:709 ../../c-api/init.rst:723 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 "" +"A string retornada aponta para o armazenamento estático; o chamador não deve " +"modificar o seu valor. O valor está disponível para o código Python como " +"``sys.version``." -#: ../../c-api/init.rst:709 +#: ../../c-api/init.rst:716 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" @@ -1001,15 +1144,24 @@ msgstr "" "Retorna informação sobre o número de sequência e a data e hora da construção " "da instância atual do interpretador Python, por exemplo ::" -#: ../../c-api/init.rst:728 +#: ../../c-api/init.rst:719 +msgid "\"#67, Aug 1 1997, 22:34:28\"" +msgstr "\"#67, Aug 1 1997, 22:34:28\"" + +#: ../../c-api/init.rst:735 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 `." +"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 "" +"Esta API é mantida para compatibilidade com versões anteriores: em vez " +"disso, deve-se usar a " +"configuração :c:member:`PyConfig.argv`, :c:member:`PyConfig.parse_argv` " +"e :c:member:`PyConfig.safe_path`, consulte :ref:`Configuração de " +"inicialização do Python `." -#: ../../c-api/init.rst:733 +#: ../../c-api/init.rst:740 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 " @@ -1019,8 +1171,15 @@ msgid "" "empty string. If this function fails to initialize :data:`sys.argv`, a " "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" +"Define :data:`sys.argv` com base em *argc* e *argv*. Esses parâmetros são " +"semelhantes aos passados para a função :c:func:`main` do programa, com a " +"diferença de que a primeira entrada deve se referir ao arquivo de script a " +"ser executado, em vez do executável que hospeda o interpretador Python. Se " +"não houver um script a ser executado, a primeira entrada em *argv* pode ser " +"uma string vazia. Se esta função falhar ao inicializar :data:`sys.argv`, uma " +"condição fatal será sinalizada usando :c:func:`Py_FatalError`." -#: ../../c-api/init.rst:741 +#: ../../c-api/init.rst:748 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 " @@ -1030,92 +1189,131 @@ msgstr "" "é zero, a função também modifica :data:`sys.path` de acordo com o seguinte " "algoritmo:" -#: ../../c-api/init.rst:745 +#: ../../c-api/init.rst:752 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`." +"path of the directory where the script is located is prepended " +"to :data:`sys.path`." msgstr "" +"Se o nome de um script existente for passado em ``argv[0]``, o caminho " +"absoluto do diretório onde o script está localizado será adicionado " +"a :data:`sys.path`." -#: ../../c-api/init.rst:748 +#: ../../c-api/init.rst:755 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 "" +"Caso contrário (isto é, se *argc* for ``0`` ou ``argv[0]`` não apontar para " +"um nome de arquivo existente), uma string vazia é adicionada ao início " +"de :data:`sys.path`, o que é o mesmo que adicionar o diretório de trabalho " +"atual (``\".\"``)." -#: ../../c-api/init.rst:756 ../../c-api/init.rst:792 +#: ../../c-api/init.rst:763 ../../c-api/init.rst:799 msgid "" "See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " "members of the :ref:`Python Initialization Configuration `." msgstr "" +"Veja também os membros :c:member:`PyConfig.orig_argv` " +"e :c:member:`PyConfig.argv` da :ref:`Configuração de inicialização do Python " +"`." -#: ../../c-api/init.rst:760 +#: ../../c-api/init.rst:767 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 "" +"Recomenda-se que aplicações que incorporam o interpretador Python para fins " +"que não sejam a execução de um único script passem ``0`` como *updatepath*, " +"e atualizem :data:`sys.path` por conta própria, se desejarem. " +"Veja :cve:`2008-5983`." -#: ../../c-api/init.rst:765 +#: ../../c-api/init.rst:772 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::" +"popping the first :data:`sys.path` element after having " +"called :c:func:`PySys_SetArgv`, for example using::" msgstr "" +"Em versões anteriores à 3.1.3, você pode obter o mesmo efeito removendo " +"manualmente o primeiro elemento de :data:`sys.path` após ter " +"chamado :c:func:`PySys_SetArgv`, por exemplo, usando::" -#: ../../c-api/init.rst:781 +#: ../../c-api/init.rst:776 +msgid "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" +msgstr "PyRun_SimpleString(\"import sys; sys.path.pop(0)\\n\");" + +#: ../../c-api/init.rst:788 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 `." +"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 "" +"Esta API é mantida para retrocompatibilidade: em vez disso, devem ser usadas " +"as configurações :c:member:`PyConfig.argv` " +"e :c:member:`PyConfig.parse_argv`, consulte a :ref:`Configuração de " +"inicialização do Python `." -#: ../../c-api/init.rst:785 +#: ../../c-api/init.rst:792 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`." +"``1`` unless the :program:`python` interpreter was started with " +"the :option:`-I`." msgstr "" +"Esta função funciona como :c:func:`PySys_SetArgvEx` com *updatepath* " +"definido como ``1`` a menos que o interpretador :program:`python` tenha sido " +"iniciado com a :option:`-I`." -#: ../../c-api/init.rst:795 +#: ../../c-api/init.rst:802 msgid "The *updatepath* value depends on :option:`-I`." -msgstr "" +msgstr "O valor *updatepath* depende de :option:`-I`." -#: ../../c-api/init.rst:802 +#: ../../c-api/init.rst:809 msgid "" -"This API is kept for backward compatibility: setting :c:member:`PyConfig." -"home` should be used instead, see :ref:`Python Initialization Configuration " -"`." +"This API is kept for backward compatibility: " +"setting :c:member:`PyConfig.home` should be used instead, see :ref:`Python " +"Initialization Configuration `." msgstr "" +"Esta API é mantida para retrocompatibilidade: em vez disso, deve-se usar a " +"configuração :c:member:`PyConfig.home`, consulte a :ref:`Configuração de " +"inicialização do Python `." -#: ../../c-api/init.rst:806 +#: ../../c-api/init.rst:813 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 "" +"Define o diretório pessoal (\"home\") padrão, ou seja, o local das " +"bibliotecas padrão do Python. Consulte :envvar:`PYTHONHOME` para obter o " +"significado da string do argumento." -#: ../../c-api/init.rst:810 +#: ../../c-api/init.rst:817 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 "" +"O argumento deve apontar para uma string terminada em zero em um " +"armazenamento estático, cujo conteúdo não será alterado durante a execução " +"do programa. Nenhum código no interpretador Python alterará o conteúdo desse " +"armazenamento." -#: ../../c-api/init.rst:823 +#: ../../c-api/init.rst:830 msgid "" -"Return the default \"home\", that is, the value set by a previous call to :c:" -"func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " +"Return the default \"home\", that is, the value set by a previous call " +"to :c:func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " "environment variable if it is set." msgstr "" -#: ../../c-api/init.rst:837 +#: ../../c-api/init.rst:844 msgid "Thread State and the Global Interpreter Lock" -msgstr "" +msgstr "Estado de thread e a trava global do interpretador" -#: ../../c-api/init.rst:844 +#: ../../c-api/init.rst:851 msgid "" "The Python interpreter is not fully thread-safe. In order to support multi-" "threaded Python programs, there's a global lock, called the :term:`global " @@ -1127,17 +1325,25 @@ msgid "" "once instead of twice." msgstr "" -#: ../../c-api/init.rst:854 +#: ../../c-api/init.rst:861 msgid "" -"Therefore, the rule exists that only the thread that has acquired the :term:" -"`GIL` may operate on Python objects or call Python/C API functions. In order " -"to emulate concurrency of execution, the interpreter regularly tries to " -"switch threads (see :func:`sys.setswitchinterval`). The lock is also " -"released around potentially blocking I/O operations like reading or writing " -"a file, so that other Python threads can run in the meantime." +"Therefore, the rule exists that only the thread that has acquired " +"the :term:`GIL` may operate on Python objects or call Python/C API " +"functions. In order to emulate concurrency of execution, the interpreter " +"regularly tries to switch threads (see :func:`sys.setswitchinterval`). The " +"lock is also released around potentially blocking I/O operations like " +"reading or writing a file, so that other Python threads can run in the " +"meantime." msgstr "" +"Portanto, existe a regra de que somente a thread que adquiriu a :term:`GIL` " +"pode operar em objetos Python ou chamar funções da API C/Python. Para emular " +"a simultaneidade de execução, o interpretador tenta alternar threads " +"regularmente (consulte :func:`sys.setswitchinterval`). A trava também é " +"liberada em operações de E/S potencialmente bloqueantes, como ler ou " +"escrever um arquivo, para que outras threads Python possam ser executadas " +"enquanto isso." -#: ../../c-api/init.rst:864 +#: ../../c-api/init.rst:871 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -1145,23 +1351,42 @@ msgid "" "retrieved using :c:func:`PyThreadState_Get`." msgstr "" -#: ../../c-api/init.rst:870 +#: ../../c-api/init.rst:877 msgid "Releasing the GIL from extension code" msgstr "" -#: ../../c-api/init.rst:872 +#: ../../c-api/init.rst:879 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" -"A maioria dos códigos de extensão que manipulam o :term:`GIL` tem a seguinte " +"A maioria dos códigos de extensão que manipulam a :term:`GIL` tem a seguinte " "estrutura::" -#: ../../c-api/init.rst:881 +#: ../../c-api/init.rst:882 +msgid "" +"Save the thread state in a local variable.\n" +"Release the global interpreter lock.\n" +"... Do some blocking I/O operation ...\n" +"Reacquire the global interpreter lock.\n" +"Restore the thread state from the local variable." +msgstr "" + +#: ../../c-api/init.rst:888 msgid "This is so common that a pair of macros exists to simplify it::" +msgstr "Isso é tão comum que existe um par de macros para simplificá-lo::" + +#: ../../c-api/init.rst:890 +msgid "" +"Py_BEGIN_ALLOW_THREADS\n" +"... Do some blocking I/O operation ...\n" +"Py_END_ALLOW_THREADS" msgstr "" +"Py_BEGIN_ALLOW_THREADS\n" +"... Faça alguma operação de E/S com bloqueio...\n" +"Py_END_ALLOW_THREADS" -#: ../../c-api/init.rst:891 +#: ../../c-api/init.rst:898 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 " @@ -1170,11 +1395,25 @@ msgstr "" "A macro :c:macro:`Py_BEGIN_ALLOW_THREADS` abre um novo bloco e declara uma " "variável local oculta; a macro :c:macro:`Py_END_ALLOW_THREADS` fecha o bloco." -#: ../../c-api/init.rst:895 +#: ../../c-api/init.rst:902 msgid "The block above expands to the following code::" +msgstr "O bloco acima se expande para o seguinte código::" + +#: ../../c-api/init.rst:904 +msgid "" +"PyThreadState *_save;\n" +"\n" +"_save = PyEval_SaveThread();\n" +"... Do some blocking I/O operation ...\n" +"PyEval_RestoreThread(_save);" msgstr "" +"PyThreadState *_save;\n" +"\n" +"_save = PyEval_SaveThread();\n" +"... Faça alguma operação de E/S com bloqueio...\n" +"PyEval_RestoreThread(_save);" -#: ../../c-api/init.rst:907 +#: ../../c-api/init.rst:914 msgid "" "Here is how these functions work: the global interpreter lock is used to " "protect the pointer to the current thread state. When releasing the lock " @@ -1185,7 +1424,7 @@ msgid "" "state, the lock must be acquired before storing the thread state pointer." msgstr "" -#: ../../c-api/init.rst:916 +#: ../../c-api/init.rst:923 msgid "" "Calling system I/O functions is the most common use case for releasing the " "GIL, but it can also be useful before calling long-running computations " @@ -1195,21 +1434,21 @@ msgid "" "compressing or hashing data." msgstr "" -#: ../../c-api/init.rst:927 +#: ../../c-api/init.rst:934 msgid "Non-Python created threads" -msgstr "" +msgstr "Threads não-Python criadas" -#: ../../c-api/init.rst:929 +#: ../../c-api/init.rst:936 msgid "" -"When threads are created using the dedicated Python APIs (such as the :mod:" -"`threading` module), a thread state is automatically associated to them and " -"the code showed above is therefore correct. However, when threads are " -"created from C (for example by a third-party library with its own thread " +"When threads are created using the dedicated Python APIs (such as " +"the :mod:`threading` module), a thread state is automatically associated to " +"them and the code showed above is therefore correct. However, when threads " +"are created from C (for example by a third-party library with its own thread " "management), they don't hold the GIL, nor is there a thread state structure " "for them." msgstr "" -#: ../../c-api/init.rst:936 +#: ../../c-api/init.rst:943 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 " @@ -1220,27 +1459,52 @@ msgid "" "finally free the thread state data structure." msgstr "" -#: ../../c-api/init.rst:944 +#: ../../c-api/init.rst:951 msgid "" "The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " "do all of the above automatically. The typical idiom for calling into " "Python from a C thread is::" msgstr "" - -#: ../../c-api/init.rst:958 +"As funções :c:func:`PyGILState_Ensure` e :c:func:`PyGILState_Release` fazem " +"tudo isso automaticamente. O padrão típico para chamar o Python a partir de " +"uma thread C é:" + +#: ../../c-api/init.rst:955 +msgid "" +"PyGILState_STATE gstate;\n" +"gstate = PyGILState_Ensure();\n" +"\n" +"/* Perform Python actions here. */\n" +"result = CallSomeFunction();\n" +"/* evaluate result or handle exception */\n" +"\n" +"/* Release the thread. No Python API allowed beyond this point. */\n" +"PyGILState_Release(gstate);" +msgstr "" +"PyGILState_STATE gstate;\n" +"gstate = PyGILState_Ensure();\n" +"\n" +"/* Executa ações do Python aqui. */\n" +"result = ChamaAlgumaFunção();\n" +"/* avalia resultado ou trata de exceção */\n" +"\n" +"/* Libera a thread. Na API do Python permitida além deste ponto. */\n" +"PyGILState_Release(gstate);" + +#: ../../c-api/init.rst:965 msgid "" "Note that the ``PyGILState_*`` functions assume there is only one global " "interpreter (created automatically by :c:func:`Py_Initialize`). Python " -"supports the creation of additional interpreters (using :c:func:" -"`Py_NewInterpreter`), but mixing multiple interpreters and the " -"``PyGILState_*`` API is unsupported." +"supports the creation of additional interpreters " +"(using :c:func:`Py_NewInterpreter`), but mixing multiple interpreters and " +"the ``PyGILState_*`` API is unsupported." msgstr "" -#: ../../c-api/init.rst:968 +#: ../../c-api/init.rst:975 msgid "Cautions about fork()" msgstr "Cuidados com o uso de fork()" -#: ../../c-api/init.rst:970 +#: ../../c-api/init.rst:977 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 " @@ -1248,8 +1512,14 @@ msgid "" "concrete impact both on how locks must be handled and on all stored state in " "CPython's runtime." msgstr "" +"Outro aspecto importante a observar sobre threads é o seu comportamento " +"diante da chamada de :c:func:`fork` da linguagem C. Na maioria dos sistemas " +"com :c:func:`fork`, após um processo ser criado (\"fork\"), apenas a thread " +"que emitiu o fork continuará existindo. Isso tem um impacto concreto tanto " +"na forma como as travas devem ser gerenciados quanto em todo o estado " +"armazenado no ambiente de execução do CPython." -#: ../../c-api/init.rst:976 +#: ../../c-api/init.rst:983 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` " @@ -1259,14 +1529,14 @@ msgid "" "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." +"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/init.rst:991 +#: ../../c-api/init.rst:998 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 " @@ -1279,11 +1549,11 @@ msgid "" "called immediately after." msgstr "" -#: ../../c-api/init.rst:1004 +#: ../../c-api/init.rst:1011 msgid "High-level API" msgstr "" -#: ../../c-api/init.rst:1006 +#: ../../c-api/init.rst:1013 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" @@ -1291,7 +1561,7 @@ msgstr "" "Estes são os tipos e as funções mais comumente usados na escrita de um " "código de extensão em C, ou ao incorporar o interpretador Python:" -#: ../../c-api/init.rst:1011 +#: ../../c-api/init.rst:1018 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -1299,7 +1569,7 @@ msgid "" "in this structure." msgstr "" -#: ../../c-api/init.rst:1016 +#: ../../c-api/init.rst:1023 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -1307,30 +1577,30 @@ msgid "" "which interpreter they belong." msgstr "" -#: ../../c-api/init.rst:1024 +#: ../../c-api/init.rst:1031 msgid "" "This data structure represents the state of a single thread. The only " "public data member is:" msgstr "" -#: ../../c-api/init.rst:1029 +#: ../../c-api/init.rst:1036 msgid "This thread's interpreter state." msgstr "" -#: ../../c-api/init.rst:1040 +#: ../../c-api/init.rst:1047 msgid "Deprecated function which does nothing." msgstr "Função descontinuada que não faz nada." -#: ../../c-api/init.rst:1042 +#: ../../c-api/init.rst:1049 msgid "" "In Python 3.6 and older, this function created the GIL if it didn't exist." msgstr "" -#: ../../c-api/init.rst:1044 +#: ../../c-api/init.rst:1051 msgid "The function now does nothing." msgstr "" -#: ../../c-api/init.rst:1047 +#: ../../c-api/init.rst:1054 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." @@ -1338,24 +1608,24 @@ msgstr "" "Esta função agora é chamada por :c:func:`Py_Initialize()`, então não há mais " "necessidade de você chamá-la." -#: ../../c-api/init.rst:1051 +#: ../../c-api/init.rst:1058 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" "Esta função não pode mais ser chamada antes de :c:func:`Py_Initialize()`." -#: ../../c-api/init.rst:1061 +#: ../../c-api/init.rst:1068 msgid "" "Returns a non-zero value if :c:func:`PyEval_InitThreads` has been called. " "This function can be called without holding the GIL, and therefore can be " "used to avoid calls to the locking API when running single-threaded." msgstr "" -#: ../../c-api/init.rst:1065 +#: ../../c-api/init.rst:1072 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" -#: ../../c-api/init.rst:1073 +#: ../../c-api/init.rst:1080 msgid "" "Release the global interpreter lock (if it has been created) and reset the " "thread state to ``NULL``, returning the previous thread state (which is not " @@ -1363,7 +1633,7 @@ msgid "" "acquired it." msgstr "" -#: ../../c-api/init.rst:1081 +#: ../../c-api/init.rst:1088 msgid "" "Acquire the global interpreter lock (if it has been created) and set the " "thread state to *tstate*, which must not be ``NULL``. If the lock has been " @@ -1371,8 +1641,8 @@ msgid "" "ensues." msgstr "" -#: ../../c-api/init.rst:1087 ../../c-api/init.rst:1133 -#: ../../c-api/init.rst:1415 +#: ../../c-api/init.rst:1094 ../../c-api/init.rst:1140 +#: ../../c-api/init.rst:1422 msgid "" "Calling this function from a thread when the runtime is finalizing will " "terminate the thread, even if the thread was not created by Python. You can " @@ -1381,79 +1651,80 @@ msgid "" "avoid unwanted termination." msgstr "" -#: ../../c-api/init.rst:1095 +#: ../../c-api/init.rst:1102 msgid "" "Return the current thread state. The global interpreter lock must be held. " "When the current thread state is ``NULL``, this issues a fatal error (so " "that the caller needn't check for ``NULL``)." msgstr "" -#: ../../c-api/init.rst:1102 +#: ../../c-api/init.rst:1109 msgid "" "Swap the current thread state with the thread state given by the argument " "*tstate*, which may be ``NULL``. The global interpreter lock must be held " "and is not released." msgstr "" -#: ../../c-api/init.rst:1107 +#: ../../c-api/init.rst:1114 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: ../../c-api/init.rst:1112 +#: ../../c-api/init.rst:1119 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the global interpreter lock. This may " "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." +"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 "" "Certifique-se de que a thread atual esteja pronta para chamar a API Python " -"C, independentemente do estado atual do Python ou do bloqueio global do " +"C, independentemente do estado atual do Python ou da trava global do " "interpretador (GIL). Isso pode ser chamado quantas vezes desejar por uma " -"thread, desde que cada chamada corresponda a uma chamada para :c:func:" -"`PyGILState_Release`. Em geral, outras APIs relacionadas a threads podem ser " -"usadas entre chamadas :c:func:`PyGILState_Ensure` e :c:func:" -"`PyGILState_Release` desde que o estado da thread seja restaurado ao seu " -"estado anterior antes de Release(). Por exemplo, o uso normal das macros :c:" -"macro:`Py_BEGIN_ALLOW_THREADS` e :c:macro:`Py_END_ALLOW_THREADS` é aceitável." +"thread, desde que cada chamada corresponda a uma chamada " +"para :c:func:`PyGILState_Release`. Em geral, outras APIs relacionadas a " +"threads podem ser usadas entre chamadas :c:func:`PyGILState_Ensure` " +"e :c:func:`PyGILState_Release` desde que o estado da thread seja restaurado " +"ao seu estado anterior antes de Release(). Por exemplo, o uso normal das " +"macros :c:macro:`Py_BEGIN_ALLOW_THREADS` e :c:macro:`Py_END_ALLOW_THREADS` é " +"aceitável." -#: ../../c-api/init.rst:1122 +#: ../../c-api/init.rst:1129 msgid "" -"The return value is an opaque \"handle\" to the thread state when :c:func:" -"`PyGILState_Ensure` was called, and must be passed to :c:func:" -"`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`." +"The return value is an opaque \"handle\" to the thread state " +"when :c:func:`PyGILState_Ensure` was called, and must be passed " +"to :c:func:`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/init.rst:1129 +#: ../../c-api/init.rst:1136 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." msgstr "" -#: ../../c-api/init.rst:1141 +#: ../../c-api/init.rst:1148 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 GILState API)." +"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 GILState API)." msgstr "" -#: ../../c-api/init.rst:1146 +#: ../../c-api/init.rst:1153 msgid "" -"Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" -"func:`PyGILState_Release` on the same thread." +"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/init.rst:1152 +#: ../../c-api/init.rst:1159 msgid "" "Get the current thread state for this thread. May return ``NULL`` if no " "GILState API has been used on the current thread. Note that the main thread " @@ -1461,7 +1732,7 @@ msgid "" "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: ../../c-api/init.rst:1160 +#: ../../c-api/init.rst:1167 msgid "" "Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " "This function can be called from any thread at any time. Only if it has had " @@ -1472,250 +1743,250 @@ msgid "" "otherwise behave differently." msgstr "" -#: ../../c-api/init.rst:1172 +#: ../../c-api/init.rst:1179 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." msgstr "" -#: ../../c-api/init.rst:1178 +#: ../../c-api/init.rst:1185 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." +"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 "" "Esta macro se expande para ``{ PyThreadState *_save; _save = " "PyEval_SaveThread();``. Observe que ele contém uma chave de abertura; ele " "deve ser combinado com a seguinte macro :c:macro:`Py_END_ALLOW_THREADS`. " "Veja acima para uma discussão mais aprofundada desta macro." -#: ../../c-api/init.rst:1186 +#: ../../c-api/init.rst:1193 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." +"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 "" "Esta macro se expande para ``PyEval_RestoreThread(_save); }``. Observe que " -"ele contém uma chave de fechamento; ele deve ser combinado com uma macro :c:" -"macro:`Py_BEGIN_ALLOW_THREADS` anterior. Veja acima para uma discussão mais " -"aprofundada desta macro." +"ele contém uma chave de fechamento; ele deve ser combinado com uma " +"macro :c:macro:`Py_BEGIN_ALLOW_THREADS` anterior. Veja acima para uma " +"discussão mais aprofundada desta macro." -#: ../../c-api/init.rst:1194 +#: ../../c-api/init.rst:1201 msgid "" -"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" -"c:macro:`Py_END_ALLOW_THREADS` without the closing brace." +"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent " +"to :c:macro:`Py_END_ALLOW_THREADS` without the closing brace." msgstr "" "Esta macro se expande para ``PyEval_RestoreThread(_save);``: é equivalente " "a :c:macro:`Py_END_ALLOW_THREADS` sem a chave de fechamento." -#: ../../c-api/init.rst:1200 +#: ../../c-api/init.rst:1207 msgid "" -"This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent to :" -"c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " +"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 "" "Esta macro se expande para ``_save = PyEval_SaveThread();``: é equivalente " "a :c:macro:`Py_BEGIN_ALLOW_THREADS` sem a chave de abertura e declaração de " "variável." -#: ../../c-api/init.rst:1206 +#: ../../c-api/init.rst:1213 msgid "Low-level API" msgstr "" -#: ../../c-api/init.rst:1208 +#: ../../c-api/init.rst:1215 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: ../../c-api/init.rst:1210 +#: ../../c-api/init.rst:1217 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr "" -#: ../../c-api/init.rst:1216 +#: ../../c-api/init.rst:1223 msgid "" "Create a new interpreter state object. The global interpreter lock need not " "be held, but may be held if it is necessary to serialize calls to this " "function." msgstr "" -#: ../../c-api/init.rst:1220 +#: ../../c-api/init.rst:1227 msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"PyInterpreterState_New`` with no arguments." +"Raises an :ref:`auditing event ` " +"``cpython.PyInterpreterState_New`` with no arguments." msgstr "" -"Levanta um :ref:`evento de auditoria ` ``cpython." -"PyInterpreterState_New`` com nenhum argumento." +"Levanta um :ref:`evento de auditoria ` " +"``cpython.PyInterpreterState_New`` sem argumentos." -#: ../../c-api/init.rst:1225 +#: ../../c-api/init.rst:1232 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" -#: ../../c-api/init.rst:1228 +#: ../../c-api/init.rst:1235 msgid "" -"Raises an :ref:`auditing event ` ``cpython." -"PyInterpreterState_Clear`` with no arguments." +"Raises an :ref:`auditing event ` " +"``cpython.PyInterpreterState_Clear`` with no arguments." msgstr "" -"Levanta um :ref:`evento de auditoria ` ``cpython." -"PyInterpreterState_Clear`` com nenhum argumento." +"Levanta um :ref:`evento de auditoria ` " +"``cpython.PyInterpreterState_Clear`` sem argumentos." -#: ../../c-api/init.rst:1233 +#: ../../c-api/init.rst:1240 msgid "" "Destroy an interpreter state object. The global interpreter lock need not " "be held. The interpreter state must have been reset with a previous call " "to :c:func:`PyInterpreterState_Clear`." msgstr "" -#: ../../c-api/init.rst:1240 +#: ../../c-api/init.rst:1247 msgid "" "Create a new thread state object belonging to the given interpreter object. " "The global interpreter lock need not be held, but may be held if it is " "necessary to serialize calls to this function." msgstr "" -#: ../../c-api/init.rst:1247 +#: ../../c-api/init.rst:1254 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" -#: ../../c-api/init.rst:1250 +#: ../../c-api/init.rst:1257 msgid "" "This function now calls the :c:member:`PyThreadState.on_delete` callback. " "Previously, that happened in :c:func:`PyThreadState_Delete`." msgstr "" -#: ../../c-api/init.rst:1257 +#: ../../c-api/init.rst:1264 msgid "" "Destroy a thread state object. The global interpreter lock need not be " -"held. The thread state must have been reset with a previous call to :c:func:" -"`PyThreadState_Clear`." +"held. The thread state must have been reset with a previous call " +"to :c:func:`PyThreadState_Clear`." msgstr "" -#: ../../c-api/init.rst:1264 +#: ../../c-api/init.rst:1271 msgid "" "Destroy the current thread state and release the global interpreter lock. " -"Like :c:func:`PyThreadState_Delete`, the global interpreter lock need not be " -"held. The thread state must have been reset with a previous call to :c:func:" -"`PyThreadState_Clear`." +"Like :c:func:`PyThreadState_Delete`, the global interpreter lock must be " +"held. The thread state must have been reset with a previous call " +"to :c:func:`PyThreadState_Clear`." msgstr "" -#: ../../c-api/init.rst:1272 +#: ../../c-api/init.rst:1279 msgid "Get the current frame of the Python thread state *tstate*." msgstr "" -#: ../../c-api/init.rst:1274 +#: ../../c-api/init.rst:1281 msgid "" "Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " "executing." msgstr "" -#: ../../c-api/init.rst:1277 +#: ../../c-api/init.rst:1284 msgid "See also :c:func:`PyEval_GetFrame`." msgstr "" -#: ../../c-api/init.rst:1279 ../../c-api/init.rst:1288 -#: ../../c-api/init.rst:1297 +#: ../../c-api/init.rst:1286 ../../c-api/init.rst:1295 +#: ../../c-api/init.rst:1304 msgid "*tstate* must not be ``NULL``." msgstr "" -#: ../../c-api/init.rst:1286 +#: ../../c-api/init.rst:1293 msgid "" "Get the unique thread state identifier of the Python thread state *tstate*." msgstr "" -#: ../../c-api/init.rst:1295 +#: ../../c-api/init.rst:1302 msgid "Get the interpreter of the Python thread state *tstate*." msgstr "" -#: ../../c-api/init.rst:1304 +#: ../../c-api/init.rst:1311 msgid "Suspend tracing and profiling in the Python thread state *tstate*." msgstr "" -#: ../../c-api/init.rst:1306 +#: ../../c-api/init.rst:1313 msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." msgstr "" -#: ../../c-api/init.rst:1313 +#: ../../c-api/init.rst:1320 msgid "" "Resume tracing and profiling in the Python thread state *tstate* suspended " "by the :c:func:`PyThreadState_EnterTracing` function." msgstr "" -#: ../../c-api/init.rst:1316 +#: ../../c-api/init.rst:1323 msgid "" "See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." msgstr "" -#: ../../c-api/init.rst:1324 +#: ../../c-api/init.rst:1331 msgid "Get the current interpreter." msgstr "" -#: ../../c-api/init.rst:1326 +#: ../../c-api/init.rst:1333 msgid "" "Issue a fatal error if there no current Python thread state or no current " "interpreter. It cannot return NULL." msgstr "" -#: ../../c-api/init.rst:1329 ../../c-api/init.rst:1339 +#: ../../c-api/init.rst:1336 ../../c-api/init.rst:1346 msgid "The caller must hold the GIL." -msgstr "" +msgstr "O caller deve possuir o GIL." -#: ../../c-api/init.rst:1336 +#: ../../c-api/init.rst:1343 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/init.rst:1346 +#: ../../c-api/init.rst:1353 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/init.rst:1350 +#: ../../c-api/init.rst:1357 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." msgstr "" -#: ../../c-api/init.rst:1357 +#: ../../c-api/init.rst:1364 msgid "Type of a frame evaluation function." msgstr "" -#: ../../c-api/init.rst:1359 +#: ../../c-api/init.rst:1366 msgid "" "The *throwflag* parameter is used by the ``throw()`` method of generators: " "if non-zero, handle the current exception." msgstr "" -#: ../../c-api/init.rst:1362 +#: ../../c-api/init.rst:1369 msgid "The function now takes a *tstate* parameter." msgstr "" -#: ../../c-api/init.rst:1365 +#: ../../c-api/init.rst:1372 msgid "" "The *frame* parameter changed from ``PyFrameObject*`` to " "``_PyInterpreterFrame*``." msgstr "" -#: ../../c-api/init.rst:1370 +#: ../../c-api/init.rst:1377 msgid "Get the frame evaluation function." msgstr "" -#: ../../c-api/init.rst:1372 ../../c-api/init.rst:1380 +#: ../../c-api/init.rst:1379 ../../c-api/init.rst:1387 msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." msgstr "" -#: ../../c-api/init.rst:1378 +#: ../../c-api/init.rst:1385 msgid "Set the frame evaluation function." msgstr "" -#: ../../c-api/init.rst:1387 +#: ../../c-api/init.rst:1394 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 " @@ -1724,7 +1995,7 @@ msgid "" "raised and the caller should assume no current thread state is available." msgstr "" -#: ../../c-api/init.rst:1396 +#: ../../c-api/init.rst:1403 msgid "" "Asynchronously raise an exception in a thread. The *id* argument is the " "thread id of the target thread; *exc* is the exception object to be raised. " @@ -1736,33 +2007,34 @@ msgid "" "raises no exceptions." msgstr "" -#: ../../c-api/init.rst:1404 +#: ../../c-api/init.rst:1411 msgid "" -"The type of the *id* parameter changed from :c:expr:`long` to :c:expr:" -"`unsigned long`." +"The type of the *id* parameter changed from :c:expr:`long` " +"to :c:expr:`unsigned long`." msgstr "" -#: ../../c-api/init.rst:1410 +#: ../../c-api/init.rst:1417 msgid "" "Acquire the global interpreter lock and set the current thread state to " "*tstate*, which must not be ``NULL``. The lock must have been created " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" -#: ../../c-api/init.rst:1421 ../../c-api/init.rst:1459 +#: ../../c-api/init.rst:1428 ../../c-api/init.rst:1466 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." +"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/init.rst:1426 +#: ../../c-api/init.rst:1433 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../../c-api/init.rst:1432 +#: ../../c-api/init.rst:1439 msgid "" "Reset the current thread state to ``NULL`` and release the global " "interpreter lock. The lock must have been created earlier and must be held " @@ -1771,25 +2043,25 @@ msgid "" "isn't, a fatal error is reported." msgstr "" -#: ../../c-api/init.rst:1438 +#: ../../c-api/init.rst:1445 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../../c-api/init.rst:1444 +#: ../../c-api/init.rst:1451 msgid "" "Acquire the global interpreter lock. The lock must have been created " "earlier. If this thread already has the lock, a deadlock ensues." msgstr "" -#: ../../c-api/init.rst:1447 +#: ../../c-api/init.rst:1454 msgid "" -"This function does not update the current thread state. Please use :c:func:" -"`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." +"This function does not update the current thread state. Please " +"use :c:func:`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." msgstr "" -#: ../../c-api/init.rst:1453 +#: ../../c-api/init.rst:1460 msgid "" "Calling this function from a thread when the runtime is finalizing will " "terminate the thread, even if the thread was not created by Python. You can " @@ -1798,23 +2070,23 @@ msgid "" "avoid unwanted termination." msgstr "" -#: ../../c-api/init.rst:1467 +#: ../../c-api/init.rst:1474 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." msgstr "" -#: ../../c-api/init.rst:1469 +#: ../../c-api/init.rst:1476 msgid "" -"This function does not update the current thread state. Please use :c:func:" -"`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." +"This function does not update the current thread state. Please " +"use :c:func:`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." msgstr "" -#: ../../c-api/init.rst:1478 +#: ../../c-api/init.rst:1485 msgid "Sub-interpreter support" msgstr "" -#: ../../c-api/init.rst:1480 +#: ../../c-api/init.rst:1487 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 " @@ -1822,7 +2094,7 @@ msgid "" "to do that." msgstr "" -#: ../../c-api/init.rst:1485 +#: ../../c-api/init.rst:1492 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " @@ -1833,134 +2105,134 @@ msgid "" "returns a pointer to its state." msgstr "" -#: ../../c-api/init.rst:1492 +#: ../../c-api/init.rst:1499 msgid "" -"You can switch between sub-interpreters using the :c:func:" -"`PyThreadState_Swap` function. You can create and destroy them using the " -"following functions:" +"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/init.rst:1498 +#: ../../c-api/init.rst:1505 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/init.rst:1504 +#: ../../c-api/init.rst:1511 msgid "Structure fields:" msgstr "Campos de estrutura:" -#: ../../c-api/init.rst:1508 +#: ../../c-api/init.rst:1515 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/init.rst:1512 +#: ../../c-api/init.rst:1519 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`." +"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/init.rst:1520 +#: ../../c-api/init.rst:1527 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/init.rst:1524 +#: ../../c-api/init.rst:1531 msgid "" "Note that the :mod:`subprocess` module still works when fork is disallowed." msgstr "" -#: ../../c-api/init.rst:1529 +#: ../../c-api/init.rst:1536 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/init.rst:1534 +#: ../../c-api/init.rst:1541 msgid "" "Note that the :mod:`subprocess` module still works when exec is disallowed." msgstr "" -#: ../../c-api/init.rst:1539 +#: ../../c-api/init.rst:1546 msgid "" "If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " "create threads. Otherwise threads are allowed." msgstr "" -#: ../../c-api/init.rst:1545 +#: ../../c-api/init.rst:1552 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)." +"create daemon threads. Otherwise daemon threads are allowed (as long " +"as :c:member:`~PyInterpreterConfig.allow_threads` is non-zero)." msgstr "" -#: ../../c-api/init.rst:1552 +#: ../../c-api/init.rst:1559 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`.)" +"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/init.rst:1559 +#: ../../c-api/init.rst:1566 msgid "" -"This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." -"use_main_obmalloc` is ``0``." +"This must be ``1`` (non-zero) " +"if :c:member:`~PyInterpreterConfig.use_main_obmalloc` is ``0``." msgstr "" -#: ../../c-api/init.rst:1564 +#: ../../c-api/init.rst:1571 msgid "" "This determines the operation of the GIL for the sub-interpreter. It may be " "one of the following:" msgstr "" -#: ../../c-api/init.rst:1571 +#: ../../c-api/init.rst:1578 msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." msgstr "" -#: ../../c-api/init.rst:1575 +#: ../../c-api/init.rst:1582 msgid "Use (share) the main interpreter's GIL." msgstr "" -#: ../../c-api/init.rst:1579 +#: ../../c-api/init.rst:1586 msgid "Use the sub-interpreter's own GIL." msgstr "" -#: ../../c-api/init.rst:1581 +#: ../../c-api/init.rst:1588 msgid "" -"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" -"`PyInterpreterConfig.use_main_obmalloc` must be ``0``." +"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` " +"then :c:member:`PyInterpreterConfig.use_main_obmalloc` must be ``0``." msgstr "" -#: ../../c-api/init.rst:1595 +#: ../../c-api/init.rst:1602 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)." +"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/init.rst:1605 +#: ../../c-api/init.rst:1612 msgid "" "The given *config* controls the options with which the interpreter is " "initialized." msgstr "" -#: ../../c-api/init.rst:1608 +#: ../../c-api/init.rst:1615 msgid "" "Upon success, *tstate_p* will be set to the first thread state created in " "the new sub-interpreter. This thread state is made in the current thread " @@ -1971,7 +2243,7 @@ msgid "" "state." msgstr "" -#: ../../c-api/init.rst:1617 +#: ../../c-api/init.rst:1624 msgid "" "Like all other Python/C API functions, the global interpreter lock must be " "held before calling this function and is still held when it returns. " @@ -1983,64 +2255,83 @@ msgid "" "released here." msgstr "" -#: ../../c-api/init.rst:1628 +#: ../../c-api/init.rst:1635 msgid "" "Sub-interpreters are most effective when isolated from each other, with " "certain functionality restricted::" msgstr "" -#: ../../c-api/init.rst:1642 +#: ../../c-api/init.rst:1638 +msgid "" +"PyInterpreterConfig config = {\n" +" .use_main_obmalloc = 0,\n" +" .allow_fork = 0,\n" +" .allow_exec = 0,\n" +" .allow_threads = 1,\n" +" .allow_daemon_threads = 0,\n" +" .check_multi_interp_extensions = 1,\n" +" .gil = PyInterpreterConfig_OWN_GIL,\n" +"};\n" +"PyThreadState *tstate = NULL;\n" +"PyStatus status = Py_NewInterpreterFromConfig(&tstate, &config);\n" +"if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + +#: ../../c-api/init.rst:1653 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`." +"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/init.rst:1651 +#: ../../c-api/init.rst:1662 msgid "Extension modules are shared between (sub-)interpreters as follows:" msgstr "" -#: ../../c-api/init.rst:1653 +#: ../../c-api/init.rst:1664 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." +"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/init.rst:1659 +#: ../../c-api/init.rst:1670 msgid "" -"For modules using single-phase initialization, e.g. :c:func:" -"`PyModule_Create`, the first time a particular extension is imported, it is " -"initialized normally, and a (shallow) copy of its module's dictionary is " -"squirreled away. When the same extension is imported by another " -"(sub-)interpreter, a new module is initialized and filled with the contents " -"of this copy; the extension's ``init`` function is not called. Objects in " -"the module's dictionary thus end up shared across (sub-)interpreters, which " -"might cause unwanted behavior (see `Bugs and caveats`_ below)." +"For modules using single-phase initialization, " +"e.g. :c:func:`PyModule_Create`, the first time a particular extension is " +"imported, it is initialized normally, and a (shallow) copy of its module's " +"dictionary is squirreled away. When the same extension is imported by " +"another (sub-)interpreter, a new module is initialized and filled with the " +"contents of this copy; the extension's ``init`` function is not called. " +"Objects in the module's dictionary thus end up shared across " +"(sub-)interpreters, which might cause unwanted behavior (see `Bugs and " +"caveats`_ below)." msgstr "" -#: ../../c-api/init.rst:1670 +#: ../../c-api/init.rst:1681 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." +"after the interpreter has been completely re-initialized by " +"calling :c:func:`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, " +"the extension's ``initmodule`` function *is* called again. As with multi-" +"phase initialization, this means that only C-level static and global " +"variables are shared between these modules." msgstr "" -#: ../../c-api/init.rst:1690 +#: ../../c-api/init.rst:1701 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." +"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/init.rst:1702 +#: ../../c-api/init.rst:1713 msgid "" "Destroy the (sub-)interpreter represented by the given thread state. The " "given thread state must be the current thread state. See the discussion of " @@ -2050,17 +2341,17 @@ msgid "" "be held before calling this function. No GIL is held when it returns." msgstr "" -#: ../../c-api/init.rst:1710 +#: ../../c-api/init.rst:1721 msgid "" ":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " "explicitly destroyed at that point." msgstr "" -#: ../../c-api/init.rst:1715 +#: ../../c-api/init.rst:1726 msgid "A Per-Interpreter GIL" msgstr "" -#: ../../c-api/init.rst:1717 +#: ../../c-api/init.rst:1728 msgid "" "Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " "that is completely isolated from other interpreters, including having its " @@ -2072,7 +2363,7 @@ msgid "" "just using threads. (See :pep:`554`.)" msgstr "" -#: ../../c-api/init.rst:1727 +#: ../../c-api/init.rst:1738 msgid "" "Using an isolated interpreter requires vigilance in preserving that " "isolation. That especially means not sharing any objects or mutable state " @@ -2086,15 +2377,19 @@ msgid "" "builtin objects." msgstr "" -#: ../../c-api/init.rst:1738 +#: ../../c-api/init.rst:1749 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 "" +"Se você preservar o isolamento, terá acesso à computação multi-core " +"adequada, sem as complicações que acompanham o uso de threads livres. A " +"falha em preservar o isolamento traz a exposição a todas as consequências de " +"threads livres, incluindo corridas e travamentos difíceis de depurar." -#: ../../c-api/init.rst:1743 +#: ../../c-api/init.rst:1754 msgid "" "Aside from that, one of the main challenges of using multiple isolated " "interpreters is how to communicate between them safely (not break isolation) " @@ -2104,11 +2399,11 @@ msgid "" "sharing) data between interpreters." msgstr "" -#: ../../c-api/init.rst:1754 +#: ../../c-api/init.rst:1765 msgid "Bugs and caveats" msgstr "" -#: ../../c-api/init.rst:1756 +#: ../../c-api/init.rst:1767 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " @@ -2121,7 +2416,7 @@ msgid "" "should be avoided if possible." msgstr "" -#: ../../c-api/init.rst:1766 +#: ../../c-api/init.rst:1777 msgid "" "Special care should be taken to avoid sharing user-defined functions, " "methods, instances or classes between sub-interpreters, since import " @@ -2130,37 +2425,37 @@ msgid "" "objects from which the above are reachable." msgstr "" -#: ../../c-api/init.rst:1772 +#: ../../c-api/init.rst:1783 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." +"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/init.rst:1783 +#: ../../c-api/init.rst:1794 msgid "Asynchronous Notifications" msgstr "Notificações assíncronas" -#: ../../c-api/init.rst:1785 +#: ../../c-api/init.rst:1796 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/init.rst:1792 +#: ../../c-api/init.rst:1803 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/init.rst:1796 +#: ../../c-api/init.rst:1807 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -2168,17 +2463,17 @@ msgid "" "these conditions met:" msgstr "" -#: ../../c-api/init.rst:1801 +#: ../../c-api/init.rst:1812 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: ../../c-api/init.rst:1802 +#: ../../c-api/init.rst:1813 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." msgstr "" -#: ../../c-api/init.rst:1805 +#: ../../c-api/init.rst:1816 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -2186,30 +2481,30 @@ msgid "" "if the global interpreter lock is released." msgstr "" -#: ../../c-api/init.rst:1810 +#: ../../c-api/init.rst:1821 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." msgstr "" -#: ../../c-api/init.rst:1813 +#: ../../c-api/init.rst:1824 msgid "" "To call this function in a subinterpreter, the caller must hold the GIL. " "Otherwise, the function *func* can be scheduled to be called from the wrong " "interpreter." msgstr "" -#: ../../c-api/init.rst:1818 +#: ../../c-api/init.rst:1829 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 the :ref:" -"`PyGILState API`." +"calling Python code from arbitrary C threads. Instead, use " +"the :ref:`PyGILState API`." msgstr "" -#: ../../c-api/init.rst:1827 +#: ../../c-api/init.rst:1838 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 " @@ -2217,18 +2512,18 @@ msgid "" "scheduled calls." msgstr "" -#: ../../c-api/init.rst:1836 +#: ../../c-api/init.rst:1847 msgid "Profiling and Tracing" msgstr "" -#: ../../c-api/init.rst:1841 +#: ../../c-api/init.rst:1852 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/init.rst:1845 +#: ../../c-api/init.rst:1856 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 " @@ -2238,78 +2533,76 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: ../../c-api/init.rst:1855 +#: ../../c-api/init.rst:1866 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*:" +"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/init.rst:1864 +#: ../../c-api/init.rst:1875 msgid "Value of *what*" msgstr "" -#: ../../c-api/init.rst:1864 +#: ../../c-api/init.rst:1875 msgid "Meaning of *arg*" msgstr "" -#: ../../c-api/init.rst:1866 +#: ../../c-api/init.rst:1877 msgid ":c:data:`PyTrace_CALL`" msgstr "" -#: ../../c-api/init.rst:1866 ../../c-api/init.rst:1871 -#: ../../c-api/init.rst:1882 +#: ../../c-api/init.rst:1877 ../../c-api/init.rst:1882 +#: ../../c-api/init.rst:1893 msgid "Always :c:data:`Py_None`." msgstr "" -#: ../../c-api/init.rst:1868 +#: ../../c-api/init.rst:1879 msgid ":c:data:`PyTrace_EXCEPTION`" msgstr "" -#: ../../c-api/init.rst:1868 +#: ../../c-api/init.rst:1879 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: ../../c-api/init.rst:1871 +#: ../../c-api/init.rst:1882 msgid ":c:data:`PyTrace_LINE`" msgstr "" -#: ../../c-api/init.rst:1873 +#: ../../c-api/init.rst:1884 msgid ":c:data:`PyTrace_RETURN`" msgstr "" -#: ../../c-api/init.rst:1873 +#: ../../c-api/init.rst:1884 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" -#: ../../c-api/init.rst:1876 +#: ../../c-api/init.rst:1887 msgid ":c:data:`PyTrace_C_CALL`" msgstr "" -#: ../../c-api/init.rst:1876 ../../c-api/init.rst:1878 -#: ../../c-api/init.rst:1880 +#: ../../c-api/init.rst:1887 ../../c-api/init.rst:1889 +#: ../../c-api/init.rst:1891 msgid "Function object being called." msgstr "" -#: ../../c-api/init.rst:1878 +#: ../../c-api/init.rst:1889 msgid ":c:data:`PyTrace_C_EXCEPTION`" msgstr "" -#: ../../c-api/init.rst:1880 +#: ../../c-api/init.rst:1891 msgid ":c:data:`PyTrace_C_RETURN`" msgstr "" -#: ../../c-api/init.rst:1882 +#: ../../c-api/init.rst:1893 msgid ":c:data:`PyTrace_OPCODE`" msgstr "" -#: ../../c-api/init.rst:1887 +#: ../../c-api/init.rst:1898 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 " @@ -2318,7 +2611,7 @@ msgid "" "the corresponding frame." msgstr "" -#: ../../c-api/init.rst:1896 +#: ../../c-api/init.rst:1907 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 " @@ -2330,148 +2623,149 @@ msgid "" "profiler." msgstr "" -#: ../../c-api/init.rst:1907 +#: ../../c-api/init.rst:1918 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." +"reported. It may be disabled for a frame by " +"setting :attr:`~frame.f_trace_lines` to *0* on that frame." msgstr "" -#: ../../c-api/init.rst:1915 +#: ../../c-api/init.rst:1926 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." msgstr "" -#: ../../c-api/init.rst:1921 +#: ../../c-api/init.rst:1932 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/init.rst:1927 +#: ../../c-api/init.rst:1938 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." msgstr "" -#: ../../c-api/init.rst:1933 +#: ../../c-api/init.rst:1944 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" -#: ../../c-api/init.rst:1939 +#: ../../c-api/init.rst:1950 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." +"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/init.rst:1947 +#: ../../c-api/init.rst:1958 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`." +"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/init.rst:1954 +#: ../../c-api/init.rst:1965 msgid "See also the :func:`sys.setprofile` function." msgstr "" -#: ../../c-api/init.rst:1956 ../../c-api/init.rst:1963 -#: ../../c-api/init.rst:1982 ../../c-api/init.rst:1989 +#: ../../c-api/init.rst:1967 ../../c-api/init.rst:1974 +#: ../../c-api/init.rst:1993 ../../c-api/init.rst:2000 msgid "The caller must hold the :term:`GIL`." msgstr "" -#: ../../c-api/init.rst:1960 +#: ../../c-api/init.rst:1971 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/init.rst:1965 +#: ../../c-api/init.rst:1976 msgid "" "As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " "while setting the profile functions in all threads." msgstr "" -#: ../../c-api/init.rst:1973 +#: ../../c-api/init.rst:1984 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." +"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/init.rst:1980 +#: ../../c-api/init.rst:1991 msgid "See also the :func:`sys.settrace` function." msgstr "" -#: ../../c-api/init.rst:1986 +#: ../../c-api/init.rst:1997 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/init.rst:1991 +#: ../../c-api/init.rst:2002 msgid "" "As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " "while setting the trace functions in all threads." msgstr "" -#: ../../c-api/init.rst:2000 +#: ../../c-api/init.rst:2011 msgid "Advanced Debugger Support" msgstr "" -#: ../../c-api/init.rst:2005 +#: ../../c-api/init.rst:2016 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: ../../c-api/init.rst:2010 +#: ../../c-api/init.rst:2021 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: ../../c-api/init.rst:2015 +#: ../../c-api/init.rst:2026 msgid "Return the main interpreter state object." msgstr "" -#: ../../c-api/init.rst:2020 +#: ../../c-api/init.rst:2031 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: ../../c-api/init.rst:2026 +#: ../../c-api/init.rst:2037 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." msgstr "" -#: ../../c-api/init.rst:2032 +#: ../../c-api/init.rst:2043 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 "" -#: ../../c-api/init.rst:2039 +#: ../../c-api/init.rst:2050 msgid "Thread Local Storage Support" msgstr "" -#: ../../c-api/init.rst:2043 +#: ../../c-api/init.rst:2054 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -2481,42 +2775,42 @@ msgid "" "thread." msgstr "" -#: ../../c-api/init.rst:2050 +#: ../../c-api/init.rst:2061 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" -#: ../../c-api/init.rst:2053 +#: ../../c-api/init.rst:2064 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/init.rst:2057 +#: ../../c-api/init.rst:2068 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." +"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/init.rst:2065 +#: ../../c-api/init.rst:2076 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: ../../c-api/init.rst:2067 +#: ../../c-api/init.rst:2078 msgid "" "TSS API is introduced to supersede the use of the existing TLS API within " "the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " "instead of :c:expr:`int` to represent thread keys." msgstr "" -#: ../../c-api/init.rst:2073 +#: ../../c-api/init.rst:2084 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: ../../c-api/init.rst:2078 +#: ../../c-api/init.rst:2089 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 " @@ -2524,7 +2818,7 @@ msgid "" "public members in this structure." msgstr "" -#: ../../c-api/init.rst:2083 +#: ../../c-api/init.rst:2094 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." @@ -2532,62 +2826,64 @@ msgstr "" "Quando :ref:`Py_LIMITED_API ` não é definido, a alocação estática " "deste tipo por :c:macro:`Py_tss_NEEDS_INIT` é permitida." -#: ../../c-api/init.rst:2089 +#: ../../c-api/init.rst:2100 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/init.rst:2094 +#: ../../c-api/init.rst:2105 msgid "Dynamic Allocation" msgstr "Alocação dinâmica" -#: ../../c-api/init.rst:2096 +#: ../../c-api/init.rst:2107 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/init.rst:2103 +#: ../../c-api/init.rst:2114 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." +"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 "" -"Retorna um valor que é o mesmo estado de um valor inicializado com :c:macro:" -"`Py_tss_NEEDS_INIT`, ou ``NULL`` no caso de falha de alocação dinâmica." +"Retorna um valor que é o mesmo estado de um valor inicializado " +"com :c:macro:`Py_tss_NEEDS_INIT`, ou ``NULL`` no caso de falha de alocação " +"dinâmica." -#: ../../c-api/init.rst:2110 +#: ../../c-api/init.rst:2121 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/init.rst:2116 +#: ../../c-api/init.rst:2127 msgid "" "A freed key becomes a dangling pointer. You should reset the key to ``NULL``." msgstr "" -#: ../../c-api/init.rst:2121 +#: ../../c-api/init.rst:2132 msgid "Methods" msgstr "Métodos" -#: ../../c-api/init.rst:2123 +#: ../../c-api/init.rst:2134 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`." +"undefined if the given :c:type:`Py_tss_t` has not been initialized " +"by :c:func:`PyThread_tss_create`." msgstr "" -#: ../../c-api/init.rst:2131 +#: ../../c-api/init.rst:2142 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/init.rst:2137 +#: ../../c-api/init.rst:2148 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 " @@ -2601,40 +2897,40 @@ msgstr "" "repetidamente na mesma tecla -- chamá-la em uma tecla já inicializada não " "funciona e retorna imediatamente com sucesso." -#: ../../c-api/init.rst:2146 +#: ../../c-api/init.rst:2157 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." +"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/init.rst:2155 +#: ../../c-api/init.rst:2166 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/init.rst:2162 +#: ../../c-api/init.rst:2173 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/init.rst:2170 +#: ../../c-api/init.rst:2181 msgid "Thread Local Storage (TLS) API" msgstr "" -#: ../../c-api/init.rst:2172 +#: ../../c-api/init.rst:2183 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: ../../c-api/init.rst:2177 +#: ../../c-api/init.rst:2188 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 " @@ -2643,13 +2939,13 @@ msgid "" "platforms." msgstr "" -#: ../../c-api/init.rst:2182 +#: ../../c-api/init.rst:2193 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." msgstr "" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:495 ../../c-api/init.rst:570 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:502 ../../c-api/init.rst:577 msgid "Py_SetProgramName()" msgstr "" @@ -2661,33 +2957,33 @@ msgstr "" msgid "modules (in module sys)" msgstr "" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:589 ../../c-api/init.rst:615 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:596 ../../c-api/init.rst:622 msgid "path (in module sys)" -msgstr "" +msgstr "path (no módulo sys)" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:589 ../../c-api/init.rst:615 -#: ../../c-api/init.rst:1056 ../../c-api/init.rst:1587 -#: ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:596 ../../c-api/init.rst:622 +#: ../../c-api/init.rst:1063 ../../c-api/init.rst:1594 +#: ../../c-api/init.rst:1693 msgid "module" msgstr "módulo" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "builtins" msgstr "builtins" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "__main__" msgstr "__main__" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "sys" msgstr "sys" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:589 ../../c-api/init.rst:615 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:596 ../../c-api/init.rst:622 msgid "search" msgstr "pesquisa" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:589 ../../c-api/init.rst:615 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:596 ../../c-api/init.rst:622 msgid "path" msgstr "caminho" @@ -2699,134 +2995,134 @@ msgstr "" msgid "PySys_SetArgvEx (C function)" msgstr "" -#: ../../c-api/init.rst:334 ../../c-api/init.rst:1647 ../../c-api/init.rst:1700 +#: ../../c-api/init.rst:334 ../../c-api/init.rst:1658 ../../c-api/init.rst:1711 msgid "Py_FinalizeEx (C function)" -msgstr "" +msgstr "Py_FinalizeEx (função C)" -#: ../../c-api/init.rst:430 ../../c-api/init.rst:467 +#: ../../c-api/init.rst:437 ../../c-api/init.rst:474 msgid "Py_Initialize()" msgstr "" -#: ../../c-api/init.rst:430 ../../c-api/init.rst:467 ../../c-api/init.rst:723 +#: ../../c-api/init.rst:437 ../../c-api/init.rst:474 ../../c-api/init.rst:730 msgid "main()" msgstr "" -#: ../../c-api/init.rst:430 +#: ../../c-api/init.rst:437 msgid "stdin" msgstr "" -#: ../../c-api/init.rst:430 +#: ../../c-api/init.rst:437 msgid "stdout" msgstr "" -#: ../../c-api/init.rst:430 +#: ../../c-api/init.rst:437 msgid "sdterr" msgstr "" -#: ../../c-api/init.rst:467 ../../c-api/init.rst:615 +#: ../../c-api/init.rst:474 ../../c-api/init.rst:622 msgid "Py_GetPath()" msgstr "" -#: ../../c-api/init.rst:570 +#: ../../c-api/init.rst:577 msgid "executable (in module sys)" msgstr "" -#: ../../c-api/init.rst:589 +#: ../../c-api/init.rst:596 msgid "Py_SetPath()" msgstr "" -#: ../../c-api/init.rst:658 ../../c-api/init.rst:700 ../../c-api/init.rst:714 +#: ../../c-api/init.rst:665 ../../c-api/init.rst:707 ../../c-api/init.rst:721 msgid "version (in module sys)" msgstr "" -#: ../../c-api/init.rst:670 +#: ../../c-api/init.rst:677 msgid "platform (in module sys)" msgstr "" -#: ../../c-api/init.rst:687 +#: ../../c-api/init.rst:694 msgid "copyright (in module sys)" msgstr "" -#: ../../c-api/init.rst:723 +#: ../../c-api/init.rst:730 msgid "Py_FatalError()" msgstr "" -#: ../../c-api/init.rst:723 +#: ../../c-api/init.rst:730 msgid "argv (in module sys)" msgstr "" -#: ../../c-api/init.rst:839 +#: ../../c-api/init.rst:846 msgid "global interpreter lock" -msgstr "bloqueio global do interpretador" +msgstr "trava global do interpretador" -#: ../../c-api/init.rst:839 +#: ../../c-api/init.rst:846 msgid "interpreter lock" msgstr "" -#: ../../c-api/init.rst:839 +#: ../../c-api/init.rst:846 msgid "lock, interpreter" msgstr "" -#: ../../c-api/init.rst:852 +#: ../../c-api/init.rst:859 msgid "setswitchinterval (in module sys)" msgstr "" -#: ../../c-api/init.rst:861 +#: ../../c-api/init.rst:868 msgid "PyThreadState (C type)" msgstr "" -#: ../../c-api/init.rst:887 +#: ../../c-api/init.rst:894 msgid "Py_BEGIN_ALLOW_THREADS (C macro)" msgstr "" -#: ../../c-api/init.rst:887 +#: ../../c-api/init.rst:894 msgid "Py_END_ALLOW_THREADS (C macro)" msgstr "" -#: ../../c-api/init.rst:903 +#: ../../c-api/init.rst:910 msgid "PyEval_RestoreThread (C function)" msgstr "" -#: ../../c-api/init.rst:903 +#: ../../c-api/init.rst:910 msgid "PyEval_SaveThread (C function)" msgstr "" -#: ../../c-api/init.rst:1034 +#: ../../c-api/init.rst:1041 msgid "PyEval_AcquireThread()" msgstr "" -#: ../../c-api/init.rst:1034 +#: ../../c-api/init.rst:1041 msgid "PyEval_ReleaseThread()" msgstr "" -#: ../../c-api/init.rst:1034 +#: ../../c-api/init.rst:1041 msgid "PyEval_SaveThread()" msgstr "" -#: ../../c-api/init.rst:1034 +#: ../../c-api/init.rst:1041 msgid "PyEval_RestoreThread()" msgstr "" -#: ../../c-api/init.rst:1056 +#: ../../c-api/init.rst:1063 msgid "_thread" msgstr "_thread" -#: ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "stdout (in module sys)" -msgstr "" +msgstr "stdout (no módulo sys)" -#: ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "stderr (in module sys)" -msgstr "" +msgstr "stderr (no módulo sys)" -#: ../../c-api/init.rst:1587 ../../c-api/init.rst:1682 +#: ../../c-api/init.rst:1594 ../../c-api/init.rst:1693 msgid "stdin (in module sys)" -msgstr "" +msgstr "stdin (no módulo sys)" -#: ../../c-api/init.rst:1647 +#: ../../c-api/init.rst:1658 msgid "Py_Initialize (C function)" -msgstr "" +msgstr "Py_Initialize (função C)" -#: ../../c-api/init.rst:1677 +#: ../../c-api/init.rst:1688 msgid "close (in module os)" msgstr "" diff --git a/c-api/init_config.po b/c-api/init_config.po index a3bd5cc7d..b612ecb10 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -1,48 +1,42 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Marco Rougeth , 2021 -# Italo Penaforte , 2021 -# And Past , 2021 -# Hélio Júnior , 2021 -# Rodrigo Cândido, 2022 -# Lívia Pavini Zeviani, 2022 -# Rafael Fontenelle , 2023 -# Vitor Buxbaum Orlandi, 2023 +# Rafael Fontenelle , 2025 +# Gustavo Reis, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Vitor Buxbaum Orlandi, 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Gustavo Reis, 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/init_config.rst:7 msgid "Python Initialization Configuration" -msgstr "Configuração de Inicialização do Python" +msgstr "Configuração de inicialização do Python" #: ../../c-api/init_config.rst:11 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." +"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 "" "Python pode ser inicializado com :c:func:`Py_InitializeFromConfig` e a " -"estrutura :c:type:`PyConfig`. Pode ser pré-inicializado com :c:func:" -"`Py_PreInitialize` e a estrutura :c:type:`PyPreConfig`." +"estrutura :c:type:`PyConfig`. Pode ser pré-inicializado " +"com :c:func:`Py_PreInitialize` e a estrutura :c:type:`PyPreConfig`." #: ../../c-api/init_config.rst:15 msgid "There are two kinds of configuration:" @@ -99,6 +93,42 @@ msgid "Example of customized Python always running in isolated mode::" msgstr "" "Exemplo de Python personalizado sendo executado sempre em um modo isolado:" +#: ../../c-api/init_config.rst:41 +msgid "" +"int main(int argc, char **argv)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +" config.isolated = 1;\n" +"\n" +" /* Decode command line arguments.\n" +" Implicitly preinitialize Python (in isolated mode). */\n" +" status = PyConfig_SetBytesArgv(&config, argc, argv);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +"\n" +" return Py_RunMain();\n" +"\n" +"exception:\n" +" PyConfig_Clear(&config);\n" +" if (PyStatus_IsExit(status)) {\n" +" return status.exitcode;\n" +" }\n" +" /* Display the error message and exit the process with\n" +" non-zero exit code */\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + #: ../../c-api/init_config.rst:76 msgid "PyWideStringList" msgstr "PyWideStringList" @@ -249,6 +279,29 @@ msgstr "" msgid "Example::" msgstr "Exemplo::" +#: ../../c-api/init_config.rst:191 +msgid "" +"PyStatus alloc(void **ptr, size_t size)\n" +"{\n" +" *ptr = PyMem_RawMalloc(size);\n" +" if (*ptr == NULL) {\n" +" return PyStatus_NoMemory();\n" +" }\n" +" return PyStatus_Ok();\n" +"}\n" +"\n" +"int main(int argc, char **argv)\n" +"{\n" +" void *ptr;\n" +" PyStatus status = alloc(&ptr, 16);\n" +" if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +" }\n" +" PyMem_Free(ptr);\n" +" return 0;\n" +"}" +msgstr "" + #: ../../c-api/init_config.rst:213 msgid "PyPreConfig" msgstr "PyPreConfig" @@ -302,28 +355,38 @@ msgid "" "``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`default memory allocators ` with :ref:`debug hooks `." msgstr "" +"``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`alocadores de memória padrão " +"` com :ref:`ganchos de depuração `." #: ../../c-api/init_config.rst:248 msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): use ``malloc()`` of the C library." -msgstr "" +msgstr "``PYMEM_ALLOCATOR_MALLOC`` (``3``): usa ``malloc()`` da biblioteca C." #: ../../c-api/init_config.rst:249 msgid "" -"``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` with :" -"ref:`debug hooks `." +"``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` " +"with :ref:`debug hooks `." msgstr "" +"``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): força uso de ``malloc()`` " +"com :ref:`ganchos de depuração `." #: ../../c-api/init_config.rst:251 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " "`." msgstr "" +"``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`alocador de memória do Python " +"pymalloc `." #: ../../c-api/init_config.rst:253 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " "allocator ` with :ref:`debug hooks `." msgstr "" +"``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`alocador de memória deo " +"Python pymalloc ` com :ref:`ganchos de depuração `." #: ../../c-api/init_config.rst:257 msgid "" @@ -331,6 +394,9 @@ msgid "" "supported if Python is :option:`configured using --without-pymalloc <--" "without-pymalloc>`." msgstr "" +"``PYMEM_ALLOCATOR_PYMALLOC`` e ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` não são " +"suportados se o Python estiver :option:`configurado usando --without-" +"pymalloc <--without-pymalloc>`." #: ../../c-api/init_config.rst:261 msgid "See :ref:`Memory Management `." @@ -342,36 +408,42 @@ msgstr "Padrão: ``PYMEM_ALLOCATOR_NOT_SET``." #: ../../c-api/init_config.rst:267 msgid "Set the LC_CTYPE locale to the user preferred locale." -msgstr "" +msgstr "Define a localidade LC_CTYPE para a localidade preferida do usuário." #: ../../c-api/init_config.rst:269 msgid "" -"If equals to ``0``, set :c:member:`~PyPreConfig.coerce_c_locale` and :c:" -"member:`~PyPreConfig.coerce_c_locale_warn` members to ``0``." +"If equals to ``0``, set :c:member:`~PyPreConfig.coerce_c_locale` " +"and :c:member:`~PyPreConfig.coerce_c_locale_warn` members to ``0``." msgstr "" +"Se igual a ``0``, define os membros :c:member:`~PyPreConfig.coerce_c_locale` " +"e :c:member:`~PyPreConfig.coerce_c_locale_warn` para ``0``." #: ../../c-api/init_config.rst:272 ../../c-api/init_config.rst:283 msgid "See the :term:`locale encoding`." -msgstr "" +msgstr "Veja a :term:`codificação da localidade`." #: ../../c-api/init_config.rst:274 ../../c-api/init_config.rst:329 #: ../../c-api/init_config.rst:684 msgid "Default: ``1`` in Python config, ``0`` in isolated config." msgstr "" +"Padrão: ``1`` na configuração do Python, ``0`` na configuração isolada." #: ../../c-api/init_config.rst:278 msgid "If equals to ``2``, coerce the C locale." -msgstr "" +msgstr "Se igual a ``2``, força a localidade para C." #: ../../c-api/init_config.rst:280 msgid "" "If equals to ``1``, read the LC_CTYPE locale to decide if it should be " "coerced." msgstr "" +"Se for igual a ``1``, lê a localidade LC_CTYPE para decidir se deve ser " +"forçado." #: ../../c-api/init_config.rst:285 ../../c-api/init_config.rst:291 msgid "Default: ``-1`` in Python config, ``0`` in isolated config." msgstr "" +"Padrão: ``-1`` na configuração do Python, ``0`` na configuração isolada." #: ../../c-api/init_config.rst:289 msgid "If non-zero, emit a warning if the C locale is coerced." @@ -381,39 +453,41 @@ msgstr "Se diferente de zero, emite um aviso se a localidade C for forçada." msgid "" ":ref:`Python Development Mode `: see :c:member:`PyConfig.dev_mode`." msgstr "" +":ref:`Modo de desenvolvimento do Python `: " +"veja :c:member:`PyConfig.dev_mode`." #: ../../c-api/init_config.rst:298 ../../c-api/init_config.rst:693 #: ../../c-api/init_config.rst:735 ../../c-api/init_config.rst:1188 msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode." -msgstr "" +msgstr "Padrão: ``-1`` no modo do Python, ``0`` no modo isolado." #: ../../c-api/init_config.rst:302 msgid "Isolated mode: see :c:member:`PyConfig.isolated`." -msgstr "" +msgstr "Modo isolado: veja :c:member:`PyConfig.isolated`." #: ../../c-api/init_config.rst:304 ../../c-api/init_config.rst:880 msgid "Default: ``0`` in Python mode, ``1`` in isolated mode." -msgstr "" +msgstr "Padrão: ``0`` no modo do Python, ``1`` no modo isolado." #: ../../c-api/init_config.rst:308 msgid "If non-zero:" -msgstr "" +msgstr "Se não zero:" #: ../../c-api/init_config.rst:310 msgid "Set :c:member:`PyPreConfig.utf8_mode` to ``0``," -msgstr "" +msgstr "Define :c:member:`PyPreConfig.utf8_mode` para ``0``," #: ../../c-api/init_config.rst:311 msgid "Set :c:member:`PyConfig.filesystem_encoding` to ``\"mbcs\"``," -msgstr "" +msgstr "Define :c:member:`PyConfig.filesystem_encoding` para ``\"mbcs\"``," #: ../../c-api/init_config.rst:312 msgid "Set :c:member:`PyConfig.filesystem_errors` to ``\"replace\"``." -msgstr "" +msgstr "Define :c:member:`PyConfig.filesystem_errors` para ``\"replace\"``." #: ../../c-api/init_config.rst:314 msgid "" -"Initialized the from :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " +"Initialized from the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable value." msgstr "" @@ -438,121 +512,151 @@ msgstr "Padrão: ``0``." #: ../../c-api/init_config.rst:324 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 `." +"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 "" -"Se diferente de zero, :c:func:`Py_PreInitializeFromArgs` e :c:func:" -"`Py_PreInitializeFromBytesArgs` analisam seu argumento ``argv`` da mesma " -"forma que o Python regular analisa argumentos de linha de comando: vej :ref:" -"`Argumentos de linha de comando `." +"Se diferente de zero, :c:func:`Py_PreInitializeFromArgs` " +"e :c:func:`Py_PreInitializeFromBytesArgs` analisam seu argumento ``argv`` da " +"mesma forma que o Python regular analisa argumentos de linha de comando: " +"veja :ref:`Argumentos de linha de comando `." #: ../../c-api/init_config.rst:333 msgid "" -"Use :ref:`environment variables `? See :c:member:`PyConfig." -"use_environment`." +"Use :ref:`environment variables `? " +"See :c:member:`PyConfig.use_environment`." msgstr "" +"Usar :ref:`variáveis de ambiente `? " +"Veja :c:member:`PyConfig.use_environment`." #: ../../c-api/init_config.rst:336 ../../c-api/init_config.rst:1213 msgid "Default: ``1`` in Python config and ``0`` in isolated config." msgstr "" +"Padrão: ``1`` na configuração do Python e ``0`` na configuração isolada." #: ../../c-api/init_config.rst:340 msgid "If non-zero, enable the :ref:`Python UTF-8 Mode `." -msgstr "" +msgstr "Se não zero, habilita o :ref:`modo UTF-8 do Python `." #: ../../c-api/init_config.rst:342 msgid "" "Set to ``0`` or ``1`` by the :option:`-X utf8 <-X>` command line option and " "the :envvar:`PYTHONUTF8` environment variable." msgstr "" +"Define para ``0`` ou ``1`` pela opção de linha de comando :option:`-X utf8 <-" +"X>` e a variável de ambiente :envvar:`PYTHONUTF8`." #: ../../c-api/init_config.rst:345 msgid "Also set to ``1`` if the ``LC_CTYPE`` locale is ``C`` or ``POSIX``." msgstr "" +"Também define como ``1`` se a localidade ``LC_CTYPE`` for ``C`` ou ``POSIX``." #: ../../c-api/init_config.rst:347 msgid "Default: ``-1`` in Python config and ``0`` in isolated config." msgstr "" +"Padrão: ``-1`` na configuração do Python e ``0`` na configuração isolada." #: ../../c-api/init_config.rst:353 msgid "Preinitialize Python with PyPreConfig" -msgstr "" +msgstr "Pré-inicializar Python com PyPreConfig" #: ../../c-api/init_config.rst:355 msgid "The preinitialization of Python:" -msgstr "" +msgstr "A pré-inicialização do Python:" #: ../../c-api/init_config.rst:357 msgid "Set the Python memory allocators (:c:member:`PyPreConfig.allocator`)" msgstr "" +"Define os alocadores de memória Python (:c:member:`PyPreConfig.allocator`)" #: ../../c-api/init_config.rst:358 msgid "Configure the LC_CTYPE locale (:term:`locale encoding`)" -msgstr "" +msgstr "Configura a localidade LC_CTYPE (:term:`codificação da localidade`)" #: ../../c-api/init_config.rst:359 msgid "" -"Set the :ref:`Python UTF-8 Mode ` (:c:member:`PyPreConfig." -"utf8_mode`)" +"Set the :ref:`Python UTF-8 Mode ` " +"(:c:member:`PyPreConfig.utf8_mode`)" msgstr "" +"Define o :ref:`Modo UTF-8 do Python ` " +"(:c:member:`PyPreConfig.utf8_mode`)" #: ../../c-api/init_config.rst:362 msgid "" "The current preconfiguration (``PyPreConfig`` type) is stored in " "``_PyRuntime.preconfig``." msgstr "" +"A pré-configuração atual (tipo ``PyPreConfig``) é armazenada em " +"``_PyRuntime.preconfig``." #: ../../c-api/init_config.rst:365 msgid "Functions to preinitialize Python:" -msgstr "" +msgstr "Funções para pré-inicializar Python:" #: ../../c-api/init_config.rst:369 ../../c-api/init_config.rst:375 #: ../../c-api/init_config.rst:384 msgid "Preinitialize Python from *preconfig* preconfiguration." -msgstr "" +msgstr "Pré-inicializa o Python a partir da pré-configuração *preconfig*." #: ../../c-api/init_config.rst:371 ../../c-api/init_config.rst:380 #: ../../c-api/init_config.rst:389 msgid "*preconfig* must not be ``NULL``." -msgstr "" +msgstr "*preconfig* não pode ser ``NULL``.." #: ../../c-api/init_config.rst:377 msgid "" -"Parse *argv* command line arguments (bytes strings) if :c:member:" -"`~PyPreConfig.parse_argv` of *preconfig* is non-zero." +"Parse *argv* command line arguments (bytes strings) " +"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." msgstr "" +"Analisa argumentos de linha de comando *argv* (strings de bytes) " +"se :c:member:`~PyPreConfig.parse_argv` de *preconfig* for diferente de zero." #: ../../c-api/init_config.rst:386 msgid "" -"Parse *argv* command line arguments (wide strings) if :c:member:" -"`~PyPreConfig.parse_argv` of *preconfig* is non-zero." +"Parse *argv* command line arguments (wide strings) " +"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." msgstr "" +"Analisa argumentos de linha de comando *argv* (strings largas) " +"se :c:member:`~PyPreConfig.parse_argv` de *preconfig* for diferente de zero." #: ../../c-api/init_config.rst:391 ../../c-api/init_config.rst:1301 msgid "" -"The caller is responsible to handle exceptions (error or exit) using :c:func:" -"`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." +"The caller is responsible to handle exceptions (error or exit) " +"using :c:func:`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." msgstr "" +"O chamador é responsável por manipular exceções (erro ou saída) " +"usando :c:func:`PyStatus_Exception` e :c:func:`Py_ExitStatusException`." #: ../../c-api/init_config.rst:394 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 "" +"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 "" +"Para :ref:`configuração do Python ` " +"(:c:func:`PyPreConfig_InitPythonConfig`), se o Python for inicializado com " +"argumentos de linha de comando, os argumentos de linha de comando também " +"devem ser passados para pré-inicializar o Python, pois eles têm um efeito na " +"pré-configuração como codificações. Por exemplo, a opção de linha de " +"comando :option:`-X utf8 <-X>` habilita o :ref:`Modo UTF-8 do Python `." #: ../../c-api/init_config.rst:401 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``." +"allocator. It can be called before :c:func:`Py_PreInitialize` " +"if :c:member:`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "" +"``PyMem_SetAllocator()`` pode ser chamado depois " +"de :c:func:`Py_PreInitialize` e antes de :c:func:`Py_InitializeFromConfig` " +"para instalar um alocador de memória personalizado. Ele pode ser chamado " +"antes de :c:func:`Py_PreInitialize` se :c:member:`PyPreConfig.allocator` " +"estiver definido como ``PYMEM_ALLOCATOR_NOT_SET``." #: ../../c-api/init_config.rst:406 msgid "" @@ -561,12 +665,39 @@ msgid "" "``malloc()`` and ``free()`` is always safe. :c:func:`Py_DecodeLocale` must " "not be called before the Python preinitialization." msgstr "" +"Funções de alocação de memória do Python como :c:func:`PyMem_RawMalloc` não " +"devem ser usadas antes da pré-inicialização do Python, enquanto chamar " +"diretamente ``malloc()`` e ``free()`` é sempre " +"seguro. :c:func:`Py_DecodeLocale` não deve ser chamado antes da pré-" +"inicialização do Python." #: ../../c-api/init_config.rst:411 msgid "" "Example using the preinitialization to enable the :ref:`Python UTF-8 Mode " "`::" msgstr "" +"Exemplo usando a pré-inicialização para habilitar o :ref:`modo UTF-8 do " +"Python `." + +#: ../../c-api/init_config.rst:414 +msgid "" +"PyStatus status;\n" +"PyPreConfig preconfig;\n" +"PyPreConfig_InitPythonConfig(&preconfig);\n" +"\n" +"preconfig.utf8_mode = 1;\n" +"\n" +"status = Py_PreInitialize(&preconfig);\n" +"if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +"}\n" +"\n" +"/* at this point, Python speaks UTF-8 */\n" +"\n" +"Py_Initialize();\n" +"/* ... use Python API here ... */\n" +"Py_Finalize();" +msgstr "" #: ../../c-api/init_config.rst:433 msgid "PyConfig" @@ -574,13 +705,15 @@ msgstr "PyConfig" #: ../../c-api/init_config.rst:437 msgid "Structure containing most parameters to configure Python." -msgstr "" +msgstr "Estrutura contendo a maioria dos parâmetros para configurar o Python." #: ../../c-api/init_config.rst:439 msgid "" "When done, the :c:func:`PyConfig_Clear` function must be used to release the " "configuration memory." msgstr "" +"Ao terminar, a função :c:func:`PyConfig_Clear` deve ser usada para liberar a " +"memória de configuração." #: ../../c-api/init_config.rst:444 msgid "Structure methods:" @@ -623,8 +756,8 @@ msgstr "" #: ../../c-api/init_config.rst:478 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`." +"from the *argv* list of bytes strings. Decode bytes " +"using :c:func:`Py_DecodeLocale`." msgstr "" #: ../../c-api/init_config.rst:486 @@ -633,11 +766,11 @@ msgstr "" #: ../../c-api/init_config.rst:492 msgid "Read all Python configuration." -msgstr "" +msgstr "Lê toda a configuração do Python." #: ../../c-api/init_config.rst:494 msgid "Fields which are already initialized are left unchanged." -msgstr "" +msgstr "Campos que já estão inicializados permanecem inalterados." #: ../../c-api/init_config.rst:496 msgid "" @@ -649,16 +782,17 @@ msgstr "" 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 strippped from :c:member:" -"`PyConfig.argv`, parsing arguments twice would parse the application options " -"as Python options." +"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:507 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``." +"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:513 @@ -670,15 +804,15 @@ msgstr "" #: ../../c-api/init_config.rst:521 msgid "Release configuration memory." -msgstr "" +msgstr "Libera memória de configuração." #: ../../c-api/init_config.rst:523 msgid "" "Most ``PyConfig`` methods :ref:`preinitialize Python ` if needed. " -"In that case, the Python preinitialization configuration (:c:type:" -"`PyPreConfig`) in 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:" +"In that case, the Python preinitialization configuration " +"(:c:type:`PyPreConfig`) in 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:529 @@ -701,8 +835,8 @@ msgstr ":c:member:`PyConfig.use_environment`" 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)." +"preinitialization configuration depends on command line arguments " +"(if :c:member:`~PyConfig.parse_argv` is non-zero)." msgstr "" #: ../../c-api/init_config.rst:539 @@ -717,9 +851,10 @@ msgstr "" #: ../../c-api/init_config.rst:550 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`." +"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:555 @@ -744,8 +879,8 @@ msgstr "" #: ../../c-api/init_config.rst:564 msgid "" -"If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path to :" -"data:`sys.path` at startup:" +"If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path " +"to :data:`sys.path` at startup:" msgstr "" #: ../../c-api/init_config.rst:567 @@ -768,8 +903,8 @@ msgstr "" #: ../../c-api/init_config.rst:574 msgid "" -"Set to ``1`` by the :option:`-P` command line option and the :envvar:" -"`PYTHONSAFEPATH` environment variable." +"Set to ``1`` by the :option:`-P` command line option and " +"the :envvar:`PYTHONSAFEPATH` environment variable." msgstr "" #: ../../c-api/init_config.rst:577 @@ -811,8 +946,8 @@ msgstr "" #: ../../c-api/init_config.rst:614 msgid "" -"Set to ``0`` by the :option:`-u` command line option and the :envvar:" -"`PYTHONUNBUFFERED` environment variable." +"Set to ``0`` by the :option:`-u` command line option and " +"the :envvar:`PYTHONUNBUFFERED` environment variable." msgstr "" #: ../../c-api/init_config.rst:617 @@ -826,8 +961,9 @@ msgstr "Padrão: ``1``." #: ../../c-api/init_config.rst:623 msgid "" -"If equals to ``1``, issue a warning when comparing :class:`bytes` or :class:" -"`bytearray` with :class:`str`, or comparing :class:`bytes` with :class:`int`." +"If 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:627 @@ -842,9 +978,9 @@ msgstr "" #: ../../c-api/init_config.rst:636 msgid "" -"If non-zero, emit a :exc:`EncodingWarning` warning when :class:`io." -"TextIOWrapper` uses its default encoding. See :ref:`io-encoding-warning` for " -"details." +"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:645 @@ -862,8 +998,8 @@ msgstr "" #: ../../c-api/init_config.rst:658 msgid "" -"Control the validation behavior of hash-based ``.pyc`` files: value of the :" -"option:`--check-hash-based-pycs` command line option." +"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:661 @@ -921,8 +1057,8 @@ msgstr "" #: ../../c-api/init_config.rst:690 msgid "" -"Set to ``1`` by the :option:`-X dev <-X>` option and the :envvar:" -"`PYTHONDEVMODE` environment variable." +"Set to ``1`` by the :option:`-X dev <-X>` option and " +"the :envvar:`PYTHONDEVMODE` environment variable." msgstr "" #: ../../c-api/init_config.rst:697 @@ -951,8 +1087,8 @@ msgstr "" #: ../../c-api/init_config.rst:719 msgid "" -"The absolute path of the executable binary for the Python interpreter: :data:" -"`sys.executable`." +"The absolute path of the executable binary for the Python " +"interpreter: :data:`sys.executable`." msgstr "" #: ../../c-api/init_config.rst:728 @@ -965,14 +1101,14 @@ msgstr "" #: ../../c-api/init_config.rst:732 msgid "" -"Set to ``1`` by :option:`-X faulthandler <-X>` and the :envvar:" -"`PYTHONFAULTHANDLER` environment variable." +"Set to ``1`` by :option:`-X faulthandler <-X>` and " +"the :envvar:`PYTHONFAULTHANDLER` environment variable." msgstr "" #: ../../c-api/init_config.rst:739 msgid "" -":term:`Filesystem encoding `: :func:" -"`sys.getfilesystemencoding`." +":term:`Filesystem encoding `: :func:`sys.getfilesystemencoding`." msgstr "" #: ../../c-api/init_config.rst:742 @@ -981,9 +1117,9 @@ msgstr "" #: ../../c-api/init_config.rst:744 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." +"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:748 @@ -1022,15 +1158,15 @@ msgstr "" #: ../../c-api/init_config.rst:765 msgid "" -":term:`Filesystem error handler `: :" -"func:`sys.getfilesystemencodeerrors`." +":term:`Filesystem error handler `: :func:`sys.getfilesystemencodeerrors`." msgstr "" #: ../../c-api/init_config.rst:768 msgid "" -"On Windows: use ``\"surrogatepass\"`` by default, or ``\"replace\"`` if :c:" -"member:`~PyPreConfig.legacy_windows_fs_encoding` of :c:type:`PyPreConfig` is " -"non-zero." +"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:772 @@ -1102,8 +1238,8 @@ msgstr "" #: ../../c-api/init_config.rst:812 msgid "" -"Set the ``1`` by the :option:`-X importtime <-X>` option and the :envvar:" -"`PYTHONPROFILEIMPORTTIME` environment variable." +"Set the ``1`` by the :option:`-X importtime <-X>` option and " +"the :envvar:`PYTHONPROFILEIMPORTTIME` environment variable." msgstr "" #: ../../c-api/init_config.rst:819 @@ -1120,8 +1256,8 @@ msgstr "" #: ../../c-api/init_config.rst:826 msgid "" -"Incremented by the :option:`-i` command line option. Set to ``1`` if the :" -"envvar:`PYTHONINSPECT` environment variable is non-empty." +"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:833 @@ -1145,10 +1281,11 @@ msgstr "" 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." +"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:855 @@ -1159,8 +1296,8 @@ msgstr "" #: ../../c-api/init_config.rst:858 msgid "" -"Default: ``-1`` in Python mode. 4300 (:data:`sys.int_info." -"default_max_str_digits`) in isolated mode." +"Default: ``-1`` in Python mode. 4300 " +"(:data:`sys.int_info.default_max_str_digits`) in isolated mode." msgstr "" #: ../../c-api/init_config.rst:865 @@ -1198,15 +1335,15 @@ msgstr "" #: ../../c-api/init_config.rst:882 msgid "" -"See also the :ref:`Isolated Configuration ` and :c:" -"member:`PyPreConfig.isolated`." +"See also the :ref:`Isolated Configuration ` " +"and :c:member:`PyPreConfig.isolated`." msgstr "" #: ../../c-api/init_config.rst:887 msgid "" -"If non-zero, use :class:`io.FileIO` instead of :class:`!io." -"_WindowsConsoleIO` for :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys." -"stderr`." +"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:891 @@ -1214,8 +1351,9 @@ msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" -"Definida como ``1`` se a variável de ambiente :envvar:" -"`PYTHONLEGACYWINDOWSSTDIO` estiver definida como uma string não vazia." +"Definida como ``1`` se a variável de " +"ambiente :envvar:`PYTHONLEGACYWINDOWSSTDIO` estiver definida como uma string " +"não vazia." #: ../../c-api/init_config.rst:899 msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)." @@ -1247,9 +1385,9 @@ msgstr "" #: ../../c-api/init_config.rst:919 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)." +"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:927 @@ -1262,8 +1400,8 @@ msgstr "" #: ../../c-api/init_config.rst:936 msgid "" -"Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` (:" -"data:`os.pathsep`)." +"Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` " +"(:data:`os.pathsep`)." msgstr "" #: ../../c-api/init_config.rst:939 @@ -1276,10 +1414,10 @@ msgstr "" #: ../../c-api/init_config.rst:950 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``." +"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:955 @@ -1306,8 +1444,8 @@ msgstr "" #: ../../c-api/init_config.rst:968 msgid "" -"Incremented by the :option:`-O` command line option. Set to the :envvar:" -"`PYTHONOPTIMIZE` environment variable value." +"Incremented by the :option:`-O` command line option. Set to " +"the :envvar:`PYTHONOPTIMIZE` environment variable value." msgstr "" #: ../../c-api/init_config.rst:975 @@ -1318,17 +1456,18 @@ msgstr "" #: ../../c-api/init_config.rst:978 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)." +"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:985 msgid "" -"See also the :c:member:`~PyConfig.argv` member and the :c:func:" -"`Py_GetArgcArgv` function." +"See also the :c:member:`~PyConfig.argv` member and " +"the :c:func:`Py_GetArgcArgv` function." msgstr "" #: ../../c-api/init_config.rst:988 ../../c-api/init_config.rst:1258 @@ -1349,8 +1488,8 @@ msgstr "" #: ../../c-api/init_config.rst:1008 msgid "" -"The :c:member:`PyConfig.argv` arguments are now only parsed if :c:member:" -"`PyConfig.parse_argv` equals to ``1``." +"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:1014 @@ -1361,8 +1500,8 @@ msgstr "" #: ../../c-api/init_config.rst:1017 msgid "" -"Incremented by the :option:`-d` command line option. Set to the :envvar:" -"`PYTHONDEBUG` environment variable value." +"Incremented by the :option:`-d` command line option. Set to " +"the :envvar:`PYTHONDEBUG` environment variable value." msgstr "" #: ../../c-api/init_config.rst:1020 @@ -1403,8 +1542,8 @@ msgstr "" #: ../../c-api/init_config.rst:1053 msgid "" -"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, use :envvar:" -"`__PYVENV_LAUNCHER__` environment variable if set." +"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, " +"use :envvar:`__PYVENV_LAUNCHER__` environment variable if set." msgstr "" #: ../../c-api/init_config.rst:1055 @@ -1420,8 +1559,8 @@ msgstr "" #: ../../c-api/init_config.rst:1066 msgid "" -"Directory where cached ``.pyc`` files are written: :data:`sys." -"pycache_prefix`." +"Directory where cached ``.pyc`` files are " +"written: :data:`sys.pycache_prefix`." msgstr "" #: ../../c-api/init_config.rst:1069 @@ -1454,8 +1593,9 @@ msgstr "" #: ../../c-api/init_config.rst:1095 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." +"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:1099 @@ -1508,8 +1648,8 @@ msgstr "" #: ../../c-api/init_config.rst:1137 msgid "" -":data:`sys.flags.no_site ` is set to the inverted value of :c:" -"member:`~PyConfig.site_import`." +":data:`sys.flags.no_site ` is set to the inverted value " +"of :c:member:`~PyConfig.site_import`." msgstr "" #: ../../c-api/init_config.rst:1144 @@ -1530,8 +1670,8 @@ msgstr "" #: ../../c-api/init_config.rst:1157 msgid "" -"Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` and :" -"data:`sys.stderr` (but :data:`sys.stderr` always uses " +"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 "" @@ -1586,8 +1726,8 @@ msgstr "" #: ../../c-api/init_config.rst:1185 msgid "" -"Set by :option:`-X tracemalloc=N <-X>` command line option and by the :" -"envvar:`PYTHONTRACEMALLOC` environment variable." +"Set by :option:`-X tracemalloc=N <-X>` command line option and by " +"the :envvar:`PYTHONTRACEMALLOC` environment variable." msgstr "" #: ../../c-api/init_config.rst:1192 @@ -1602,8 +1742,8 @@ msgstr "" #: ../../c-api/init_config.rst:1197 msgid "" -"Set by :option:`-X perf <-X>` command line option and by the :envvar:" -"`PYTHONPERFSUPPORT` environment variable." +"Set by :option:`-X perf <-X>` command line option and by " +"the :envvar:`PYTHONPERFSUPPORT` environment variable." msgstr "" #: ../../c-api/init_config.rst:1200 @@ -1673,15 +1813,15 @@ msgstr "" #: ../../c-api/init_config.rst:1251 msgid "" -"The :option:`-W` command line options adds its value to :c:member:`~PyConfig." -"warnoptions`, it can be used multiple times." +"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:1254 msgid "" "The :envvar:`PYTHONWARNINGS` environment variable can also be used to add " -"warning options. Multiple options can be specified, separated by commas (``," -"``)." +"warning options. Multiple options can be specified, separated by commas " +"(``,``)." msgstr "" #: ../../c-api/init_config.rst:1262 @@ -1692,14 +1832,14 @@ msgstr "" #: ../../c-api/init_config.rst:1265 msgid "" -"Set to ``0`` by the :option:`-B` command line option and the :envvar:" -"`PYTHONDONTWRITEBYTECODE` environment variable." +"Set to ``0`` by the :option:`-B` command line option and " +"the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable." msgstr "" #: ../../c-api/init_config.rst:1268 msgid "" -":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:" -"member:`~PyConfig.write_bytecode`." +":data:`sys.dont_write_bytecode` is initialized to the inverted value " +"of :c:member:`~PyConfig.write_bytecode`." msgstr "" #: ../../c-api/init_config.rst:1275 @@ -1710,8 +1850,8 @@ msgstr "" 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`." +"line arguments `, and Python arguments are stripped " +"from :c:member:`~PyConfig.argv`." msgstr "" #: ../../c-api/init_config.rst:1284 @@ -1738,11 +1878,12 @@ msgstr "" #: ../../c-api/init_config.rst:1304 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." +"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:1311 @@ -1755,6 +1896,35 @@ msgstr "" msgid "Example setting the program name::" msgstr "" +#: ../../c-api/init_config.rst:1316 +msgid "" +"void init_python(void)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* Set the program name. Implicitly preinitialize Python. */\n" +" status = PyConfig_SetString(&config, &config.program_name,\n" +" L\"/path/to/my_program\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto exception;\n" +" }\n" +" PyConfig_Clear(&config);\n" +" return;\n" +"\n" +"exception:\n" +" PyConfig_Clear(&config);\n" +" Py_ExitStatusException(status);\n" +"}" +msgstr "" + #: ../../c-api/init_config.rst:1342 msgid "" "More complete example modifying the default configuration, read the " @@ -1764,15 +1934,71 @@ msgid "" "called will be left unchanged by initialization::" msgstr "" +#: ../../c-api/init_config.rst:1349 +msgid "" +"PyStatus init_python(const char *program_name)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +"\n" +" /* Set the program name before reading the configuration\n" +" (decode byte string from the locale encoding).\n" +"\n" +" Implicitly preinitialize Python. */\n" +" status = PyConfig_SetBytesString(&config, &config.program_name,\n" +" program_name);\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Read all configuration at once */\n" +" status = PyConfig_Read(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Specify sys.path explicitly */\n" +" /* If you want to modify the default set of paths, finish\n" +" initialization first and then use PySys_GetObject(\"path\") */\n" +" config.module_search_paths_set = 1;\n" +" status = PyWideStringList_Append(&config.module_search_paths,\n" +" L\"/path/to/stdlib\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +" status = PyWideStringList_Append(&config.module_search_paths,\n" +" L\"/path/to/more/modules\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" /* Override executable computed by PyConfig_Read() */\n" +" status = PyConfig_SetString(&config, &config.executable,\n" +" L\"/path/to/my_executable\");\n" +" if (PyStatus_Exception(status)) {\n" +" goto done;\n" +" }\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +"\n" +"done:\n" +" PyConfig_Clear(&config);\n" +" return status;\n" +"}" +msgstr "" + #: ../../c-api/init_config.rst:1405 msgid "Isolated Configuration" msgstr "" #: ../../c-api/init_config.rst:1407 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." +":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:1412 @@ -1796,9 +2022,9 @@ msgstr "Configuração do Python" #: ../../c-api/init_config.rst:1427 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." +":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:1431 @@ -1810,8 +2036,9 @@ msgstr "" #: ../../c-api/init_config.rst:1434 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." +"Mode ` (:pep:`540`) depending on the LC_CTYPE " +"locale, :envvar:`PYTHONUTF8` and :envvar:`PYTHONCOERCECLOCALE` environment " +"variables." msgstr "" #: ../../c-api/init_config.rst:1443 @@ -1852,8 +2079,8 @@ msgstr "" #: ../../c-api/init_config.rst:1455 msgid "" -"``PATH`` environment variable to get the program full path (from :c:member:" -"`PyConfig.program_name`)" +"``PATH`` environment variable to get the program full path " +"(from :c:member:`PyConfig.program_name`)" msgstr "" #: ../../c-api/init_config.rst:1457 @@ -1892,12 +2119,8 @@ msgid ":c:member:`PyConfig.executable`" msgstr ":c:member:`PyConfig.executable`" #: ../../c-api/init_config.rst:1469 -msgid "" -":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." -"module_search_paths`" -msgstr "" -":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." -"module_search_paths`" +msgid ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig.module_search_paths`" +msgstr ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig.module_search_paths`" #: ../../c-api/init_config.rst:1471 msgid ":c:member:`PyConfig.prefix`" @@ -1906,10 +2129,10 @@ msgstr ":c:member:`PyConfig.prefix`" #: ../../c-api/init_config.rst:1473 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``." +"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:1479 @@ -1931,9 +2154,10 @@ msgstr "" #: ../../c-api/init_config.rst:1489 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." +"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:1493 @@ -1943,8 +2167,8 @@ msgstr "" #: ../../c-api/init_config.rst:1495 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`." +"contains a ``__main__.py`` script, " +"prepend :c:member:`~PyConfig.run_filename` to :data:`sys.path`." msgstr "" #: ../../c-api/init_config.rst:1498 @@ -1970,10 +2194,10 @@ msgstr "" #: ../../c-api/init_config.rst:1506 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`." +"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:1512 @@ -2014,8 +2238,8 @@ msgstr "" #: ../../c-api/init_config.rst:1525 msgid "" -"The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:" -"`PyConfig.base_executable`" +"The ``__PYVENV_LAUNCHER__`` environment variable is used to " +"set :c:member:`PyConfig.base_executable`" msgstr "" #: ../../c-api/init_config.rst:1530 @@ -2024,9 +2248,10 @@ msgstr "Py_RunMain()" #: ../../c-api/init_config.rst:1534 msgid "" -"Execute the command (:c:member:`PyConfig.run_command`), the script (:c:" -"member:`PyConfig.run_filename`) or the module (:c:member:`PyConfig." -"run_module`) specified on the command line or in the configuration." +"Execute the command (:c:member:`PyConfig.run_command`), the script " +"(:c:member:`PyConfig.run_filename`) or the module " +"(:c:member:`PyConfig.run_module`) specified on the command line or in the " +"configuration." msgstr "" #: ../../c-api/init_config.rst:1539 @@ -2107,8 +2332,8 @@ msgstr "" #: ../../c-api/init_config.rst:1578 msgid "" -"Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` and :" -"data:`sys.path`);" +"Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` " +"and :data:`sys.path`);" msgstr "" #: ../../c-api/init_config.rst:1580 @@ -2130,8 +2355,9 @@ msgstr "" #: ../../c-api/init_config.rst:1586 msgid "" -":c:member:`PyConfig._init_main`: if set to ``0``, :c:func:" -"`Py_InitializeFromConfig` stops at the \"Core\" initialization phase." +":c:member:`PyConfig._init_main`: if set to " +"``0``, :c:func:`Py_InitializeFromConfig` stops at the \"Core\" " +"initialization phase." msgstr "" #: ../../c-api/init_config.rst:1591 @@ -2168,3 +2394,40 @@ msgid "" "Example running Python code between \"Core\" and \"Main\" initialization " "phases::" msgstr "" + +#: ../../c-api/init_config.rst:1611 +msgid "" +"void init_python(void)\n" +"{\n" +" PyStatus status;\n" +"\n" +" PyConfig config;\n" +" PyConfig_InitPythonConfig(&config);\n" +" config._init_main = 0;\n" +"\n" +" /* ... customize 'config' configuration ... */\n" +"\n" +" status = Py_InitializeFromConfig(&config);\n" +" PyConfig_Clear(&config);\n" +" if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +" }\n" +"\n" +" /* Use sys.stderr because sys.stdout is only created\n" +" by _Py_InitializeMain() */\n" +" int res = PyRun_SimpleString(\n" +" \"import sys; \"\n" +" \"print('Run Python code before _Py_InitializeMain', \"\n" +" \"file=sys.stderr)\");\n" +" if (res < 0) {\n" +" exit(1);\n" +" }\n" +"\n" +" /* ... put more configuration code here ... */\n" +"\n" +" status = _Py_InitializeMain();\n" +" if (PyStatus_Exception(status)) {\n" +" Py_ExitStatusException(status);\n" +" }\n" +"}" +msgstr "" diff --git a/c-api/intro.po b/c-api/intro.po index 118abf336..38bbf03c5 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -1,31 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Ruan Aragão , 2021 -# Leticia Portella , 2021 -# Italo Penaforte , 2021 -# felipe caridade fernandes , 2021 -# Marco Rougeth , 2023 -# Claudio Rogerio Carvalho Filho , 2023 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-02-25 01:09+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -42,8 +36,8 @@ msgid "" "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." +"larger application; this technique is generally referred to " +"as :dfn:`embedding` Python in an application." msgstr "" "A Interface de Programação de Aplicações (API) para Python fornece aos " "programadores C e C++ acesso ao interpretador Python em uma variedade de " @@ -115,15 +109,23 @@ msgstr "" "Todas as definições de função, tipo e macro necessárias para usar a API " "Python/C estão incluídas em seu código pela seguinte linha::" +#: ../../c-api/intro.rst:51 +msgid "" +"#define PY_SSIZE_T_CLEAN\n" +"#include " +msgstr "" +"#define PY_SSIZE_T_CLEAN\n" +"#include " + #: ../../c-api/intro.rst:54 msgid "" "This implies inclusion of the following standard headers: ````, " -"````, ````, ````, ```` and ```` (if available)." +"````, ````, ````, ```` and " +"```` (if available)." msgstr "" "Isso implica a inclusão dos seguintes cabeçalhos padrão: ````, " -"````, ````, ````, ```` e ```` (se disponível)." +"````, ````, ````, ```` e " +"```` (se disponível)." #: ../../c-api/intro.rst:60 msgid "" @@ -132,16 +134,17 @@ msgid "" "any standard headers are included." msgstr "" "Uma vez que Python pode definir algumas definições de pré-processador que " -"afetam os cabeçalhos padrão em alguns sistemas, você *deve* incluir :file:" -"`Python.h` antes de quaisquer cabeçalhos padrão serem incluídos." +"afetam os cabeçalhos padrão em alguns sistemas, você *deve* " +"incluir :file:`Python.h` antes de quaisquer cabeçalhos padrão serem " +"incluídos." #: ../../c-api/intro.rst:64 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 "" -"É recomendável sempre definir ``PY_SSIZE_T_CLEAN`` antes de incluir ``Python." -"h``. Veja :ref:`arg-parsing` para uma descrição desta macro." +"É recomendável sempre definir ``PY_SSIZE_T_CLEAN`` antes de incluir " +"``Python.h``. Veja :ref:`arg-parsing` para uma descrição desta macro." #: ../../c-api/intro.rst:67 msgid "" @@ -172,13 +175,13 @@ msgstr "" #: ../../c-api/intro.rst:79 msgid "" "The header files are typically installed with Python. On Unix, these are " -"located in the directories :file:`{prefix}/include/pythonversion/` and :file:" -"`{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." +"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 "" "Os arquivos de cabeçalho são normalmente instalados com Python. No Unix, " "eles estão localizados nos diretórios :file:`{prefix}/include/pythonversion/" @@ -194,14 +197,14 @@ 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>`." +"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 "" "Para incluir os cabeçalhos, coloque os dois diretórios (se diferentes) no " "caminho de pesquisa do compilador para as inclusões. *Não* coloque os " -"diretórios pais no caminho de busca e então use ``#include ``; isto irá quebrar em compilações multiplataforma, uma vez que os " +"diretórios pais no caminho de busca e então use ``#include ``; isto irá quebrar em compilações multiplataforma, uma vez que os " "cabeçalhos independentes da plataforma em :option:`prefix <--prefix>` " "incluem os cabeçalhos específicos da plataforma de :option:`exec_prefix <--" "exec-prefix>`." @@ -229,9 +232,9 @@ msgid "" "a complete listing." msgstr "" "Diversas macros úteis são definidas nos arquivos de cabeçalho do Python. " -"Muitas são definidas mais próximas de onde são úteis (por exemplo, :c:macro:" -"`Py_RETURN_NONE`). Outras de utilidade mais geral são definidas aqui. Esta " -"não é necessariamente uma lista completa." +"Muitas são definidas mais próximas de onde são úteis (por " +"exemplo, :c:macro:`Py_RETURN_NONE`). Outras de utilidade mais geral são " +"definidas aqui. Esta não é necessariamente uma lista completa." #: ../../c-api/intro.rst:110 msgid "" @@ -255,6 +258,32 @@ msgstr "" "*name* é o nome do módulo, e deve ser o único item não-\\ ``static`` " "definido no arquivo do módulo. Exemplo::" +#: ../../c-api/intro.rst:119 +msgid "" +"static struct PyModuleDef spam_module = {\n" +" PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" ...\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModule_Create(&spam_module);\n" +"}" +msgstr "" +"static struct PyModuleDef spam_module = {\n" +" PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" ...\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModule_Create(&spam_module);\n" +"}" + #: ../../c-api/intro.rst:134 msgid "Return the absolute value of ``x``." msgstr "Retorna o valor absoluto de ``x``." @@ -291,18 +320,22 @@ msgstr "" #: ../../c-api/intro.rst:151 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." +"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 "" "Se o Python tiver sido :ref:`compilado em modo de depuração ` " -"(se a macro :c:macro:`Py_DEBUG` estiver definida), a macro :c:macro:" -"`Py_ALWAYS_INLINE` não fará nada." +"(se a macro :c:macro:`Py_DEBUG` estiver definida), a " +"macro :c:macro:`Py_ALWAYS_INLINE` não fará nada." #: ../../c-api/intro.rst:154 msgid "It must be specified before the function return type. Usage::" msgstr "Deve ser especificado antes do tipo de retorno da função. Uso::" +#: ../../c-api/intro.rst:156 +msgid "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" +msgstr "static inline Py_ALWAYS_INLINE int random(void) { return 4; }" + #: ../../c-api/intro.rst:162 msgid "" "Argument must be a character or an integer in the range [-128, 127] or [0, " @@ -325,6 +358,10 @@ msgstr "" msgid "Example::" msgstr "Exemplo::" +#: ../../c-api/intro.rst:172 +msgid "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" +msgstr "Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void);" + #: ../../c-api/intro.rst:174 msgid "MSVC support was added." msgstr "Suporte a MSVC foi adicionado." @@ -352,8 +389,8 @@ msgstr "Retorna o valor mínimo entre ``x`` e ``y``." #: ../../c-api/intro.rst:202 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`)." +"consumption: useful on LTO+PGO builds which heavily inline code " +"(see :issue:`33720`)." msgstr "" "Desabilita a inserção em linha em uma função. Por exemplo, isso reduz o " "consumo da pilha C: útil em compilações LTO+PGO que faz uso intenso de " @@ -363,6 +400,10 @@ msgstr "" msgid "Usage::" msgstr "Uso::" +#: ../../c-api/intro.rst:208 +msgid "Py_NO_INLINE static int random(void) { return 4; }" +msgstr "Py_NO_INLINE static int random(void) { return 4; }" + #: ../../c-api/intro.rst:214 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." @@ -441,6 +482,24 @@ msgstr "" "Use :c:macro:`PyDoc_STRVAR` para docstrings para ter suporte à compilação do " "Python sem docstrings, conforme especificado em :pep:`7`." +#: ../../c-api/intro.rst:258 +msgid "" +"PyDoc_STRVAR(pop_doc, \"Remove and return the rightmost element.\");\n" +"\n" +"static PyMethodDef deque_methods[] = {\n" +" // ...\n" +" {\"pop\", (PyCFunction)deque_pop, METH_NOARGS, pop_doc},\n" +" // ...\n" +"}" +msgstr "" +"PyDoc_STRVAR(pop_doc, \"Remove e retorna o elemento mais à direita.\");\n" +"\n" +"static PyMethodDef deque_methods[] = {\n" +" // ...\n" +" {\"pop\", (PyCFunction)deque_pop, METH_NOARGS, pop_doc},\n" +" // ...\n" +"}" + #: ../../c-api/intro.rst:268 msgid "" "Creates a docstring for the given input string or an empty string if " @@ -457,6 +516,20 @@ msgstr "" "Use :c:macro:`PyDoc_STR` ao especificar docstrings para ter suporte à " "compilação do Python sem docstrings, conforme especificado em :pep:`7`." +#: ../../c-api/intro.rst:276 +msgid "" +"static PyMethodDef pysqlite_row_methods[] = {\n" +" {\"keys\", (PyCFunction)pysqlite_row_keys, METH_NOARGS,\n" +" PyDoc_STR(\"Returns the keys of the row.\")},\n" +" {NULL, NULL}\n" +"};" +msgstr "" +"static PyMethodDef pysqlite_row_methods[] = {\n" +" {\"keys\", (PyCFunction)pysqlite_row_keys, METH_NOARGS,\n" +" PyDoc_STR(\"Retorna as chaves da linha.\")},\n" +" {NULL, NULL}\n" +"};" + #: ../../c-api/intro.rst:286 msgid "Objects, Types and Reference Counts" msgstr "Objetos, tipos e contagens de referências" @@ -469,9 +542,9 @@ msgid "" "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 " +"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 "" @@ -485,26 +558,26 @@ msgstr "" "declara uma variável automática ou estática do tipo :c:type:`PyObject`, " "variáveis de apenas ponteiro do tipo :c:expr:`PyObject*` podem ser " "declaradas. A única exceção são os objetos de tipo; uma vez que estes nunca " -"devem ser desalocados, eles são normalmente objetos estáticos :c:type:" -"`PyTypeObject`." +"devem ser desalocados, eles são normalmente objetos " +"estáticos :c:type:`PyTypeObject`." #: ../../c-api/intro.rst:301 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, " +"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 "" -"Todos os objetos Python (mesmo inteiros Python) têm um :dfn:`tipo` e uma :" -"dfn:`contagem de referências`. O tipo de um objeto determina que tipo de " -"objeto ele é (por exemplo, um número inteiro, uma lista ou uma função " -"definida pelo usuário; existem muitos mais, conforme explicado em :ref:" -"`types`). Para cada um dos tipos conhecidos, há uma macro para verificar se " -"um objeto é desse tipo; por exemplo, ``PyList_Check(a)`` é verdadeiro se (e " -"somente se) o objeto apontado por *a* for uma lista Python." +"Todos os objetos Python (mesmo inteiros Python) têm um :dfn:`tipo` e " +"uma :dfn:`contagem de referências`. O tipo de um objeto determina que tipo " +"de objeto ele é (por exemplo, um número inteiro, uma lista ou uma função " +"definida pelo usuário; existem muitos mais, conforme explicado " +"em :ref:`types`). Para cada um dos tipos conhecidos, há uma macro para " +"verificar se um objeto é desse tipo; por exemplo, ``PyList_Check(a)`` é " +"verdadeiro se (e somente se) o objeto apontado por *a* for uma lista Python." #: ../../c-api/intro.rst:312 msgid "Reference Counts" @@ -524,25 +597,53 @@ msgid "" "objects that reference each other here; for now, the solution is \"don't do " "that.\")" msgstr "" +"A contagem de referências é importante porque os computadores atuais têm um " +"tamanho de memória finito (e frequentemente severamente limitado); ela conta " +"quantos lugares diferentes existem que possuem uma :term:`referência forte` " +"a um objeto. Tal lugar pode ser outro objeto, ou uma variável C global (ou " +"estática), ou uma variável local em alguma função C. Quando a " +"última :term:`referência forte` a um objeto é liberada (ou seja, sua " +"contagem de referências se torna zero), o objeto é desalocado. Se ele " +"contiver referências a outros objetos, essas referências são liberadas. " +"Esses outros objetos podem ser desalocados por sua vez, se não houver mais " +"referências a eles, e assim por diante. (Há um problema óbvio com objetos " +"que referenciam uns aos outros aqui; por enquanto, a solução é \"não faça " +"isso\".)" #: ../../c-api/intro.rst:331 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 "" +"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 "" +"Contagens de referências são sempre manipuladas explicitamente. A maneira " +"normal é usar a macro :c:func:`Py_INCREF` para obter uma nova referência a " +"um objeto (ou seja, incrementar sua contagem de referências em um), " +"e :c:func:`Py_DECREF` para liberar essa referência (ou seja, decrementar a " +"contagem de referências em um). A macro :c:func:`Py_DECREF` é " +"consideravelmente mais complexa do que a incref, pois deve verificar se a " +"contagem de referências se torna zero e, em seguida, fazer com que o " +"desalocador do objeto seja chamado. O desalocador é um ponteiro para função " +"contido na estrutura de tipo do objeto. O desalocador específico do tipo " +"cuida da liberação de referências para outros objetos contidos no objeto se " +"este for um tipo de objeto composto, como uma lista, bem como de executar " +"qualquer finalização adicional necessária. Não há chance de a contagem de " +"referências transbordar; pelo menos tantos bits são usados para armazenar a " +"contagem de referência quantos forem os locais de memória distintos na " +"memória virtual (presumindo ``sizeof(Py_ssize_t) >= sizeof(void*)``). " +"Portanto, o incremento da contagem de referências é uma operação simples." #: ../../c-api/intro.rst:347 msgid "" @@ -561,6 +662,21 @@ msgid "" "that are called from Python; the call mechanism guarantees to hold a " "reference to every argument for the duration of the call." msgstr "" +"Não é necessário manter uma :term:`referência forte` (ou seja, incrementar a " +"contagem de referências) para cada variável local que contém um ponteiro " +"para um objeto. Em teoria, a contagem de referências do objeto aumenta em um " +"quando a variável é feita para apontar para ele e diminui em um quando a " +"variável sai do escopo. No entanto, esses dois se cancelam, portanto, no " +"final, a contagem de referências não mudou. A única razão real para usar a " +"contagem de referências é evitar que o objeto seja desalocado enquanto nossa " +"variável estiver apontando para ele. Se sabemos que existe pelo menos uma " +"outra referência ao objeto que vive pelo menos tanto quanto nossa variável, " +"não há necessidade de tomar uma nova :term:`referência forte` (ou seja, " +"incrementar a contagem de referências) temporariamente. Uma situação " +"importante em que isso ocorre é em objetos que são passados como argumentos " +"para funções C em um módulo de extensão que são chamados de Python; o " +"mecanismo de chamada garante manter uma referência a todos os argumentos " +"durante a chamada." #: ../../c-api/intro.rst:363 msgid "" @@ -569,9 +685,17 @@ msgid "" "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 "" +"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 "" +"No entanto, uma armadilha comum é extrair um objeto de uma lista e mantê-lo " +"por um tempo, sem tomar uma nova referência. Alguma outra operação poderia " +"remover o objeto da lista, liberando essa referência e possivelmente " +"desalocando-o. O perigo real é que operações aparentemente inocentes podem " +"invocar código Python arbitrário que poderia fazer isso; existe um caminho " +"de código que permite que o controle flua de volta para o usuário a partir " +"de um :c:func:`Py_DECREF`, então quase qualquer operação é potencialmente " +"perigosa." #: ../../c-api/intro.rst:371 msgid "" @@ -582,6 +706,12 @@ msgid "" "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 "" +"Uma abordagem segura é sempre usar as operações genéricas (funções cujo nome " +"começa com ``PyObject_``, ``PyNumber_``, ``PySequence_`` ou ``PyMapping_``). " +"Essas operações sempre criam uma nova :term:`referência forte` (ou seja, " +"incrementam a contagem de referências) do objeto que retornam. Isso deixa o " +"chamador com a responsabilidade de chamar :c:func:`Py_DECREF` quando " +"terminar com o resultado; isso logo se torna uma segunda natureza." #: ../../c-api/intro.rst:382 msgid "Reference Count Details" @@ -595,14 +725,28 @@ msgid "" "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 "" +"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 "" +"O comportamento da contagem de referências de funções na API C/Python é " +"melhor explicado em termos de *propriedade de referências*. A propriedade " +"pertence às referências, nunca aos objetos (os objetos não são possuídos: " +"eles são sempre compartilhados). \"Possuir uma referência\" significa ser " +"responsável por chamar Py_DECREF nela quando a referência não for mais " +"necessária. A propriedade também pode ser transferida, o que significa que o " +"código que recebe a propriedade da referência torna-se responsável por " +"eventualmente efetuar um liberando ela chamando :c:func:`Py_DECREF` " +"ou :c:func:`Py_XDECREF` quando não é mais necessário -- ou passando essa " +"responsabilidade (geralmente para o responsável pela chamada). Quando uma " +"função passa a propriedade de uma referência para seu chamador, diz-se que o " +"chamador recebe uma *nova* referência. Quando nenhuma propriedade é " +"transferida, diz-se que o chamador *toma emprestado* a referência. Nada " +"precisa ser feito para uma :term:`referência emprestada`." #: ../../c-api/intro.rst:397 msgid "" @@ -615,28 +759,44 @@ msgstr "" "Por outro lado, quando uma função de chamada passa uma referência a um " "objeto, há duas possibilidades: a função *rouba* uma referência ao objeto, " "ou não. *Roubar uma referência* significa que quando você passa uma " -"referência para uma função, essa função assume que agora ela possui essa " +"referência para uma função, essa função presume que agora ela possui essa " "referência e você não é mais responsável por ela." #: ../../c-api/intro.rst:407 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 "" -"Poucas funções roubam referências; as duas exceções notáveis são :c:func:" -"`PyList_SetItem` e :c:func:`PyTuple_SetItem`, que roubam uma referência para " -"o item (mas não para a tupla ou lista na qual o item é colocado!). Essas " -"funções foram projetadas para roubar uma referência devido a um idioma comum " -"para preencher uma tupla ou lista com objetos recém-criados; por exemplo, o " -"código para criar a tupla ``(1, 2, \"three\")`` pode ser parecido com isto " -"(esquecendo o tratamento de erros por enquanto; uma maneira melhor de " -"codificar isso é mostrada abaixo)::" +"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 "" +"Poucas funções roubam referências; as duas exceções notáveis " +"são :c:func:`PyList_SetItem` e :c:func:`PyTuple_SetItem`, que roubam uma " +"referência para o item (mas não para a tupla ou lista na qual o item é " +"colocado!). Essas funções foram projetadas para roubar uma referência devido " +"a um idioma comum para preencher uma tupla ou lista com objetos recém-" +"criados; por exemplo, o código para criar a tupla ``(1, 2, \"three\")`` pode " +"ser parecido com isto (esquecendo o tratamento de erros por enquanto; uma " +"maneira melhor de codificar isso é mostrada abaixo)::" + +#: ../../c-api/intro.rst:415 +msgid "" +"PyObject *t;\n" +"\n" +"t = PyTuple_New(3);\n" +"PyTuple_SetItem(t, 0, PyLong_FromLong(1L));\n" +"PyTuple_SetItem(t, 1, PyLong_FromLong(2L));\n" +"PyTuple_SetItem(t, 2, PyUnicode_FromString(\"three\"));" +msgstr "" +"PyObject *t;\n" +"\n" +"t = PyTuple_New(3);\n" +"PyTuple_SetItem(t, 0, PyLong_FromLong(1L));\n" +"PyTuple_SetItem(t, 1, PyLong_FromLong(2L));\n" +"PyTuple_SetItem(t, 2, PyUnicode_FromString(\"três\"));" #: ../../c-api/intro.rst:422 msgid "" @@ -647,16 +807,16 @@ msgid "" msgstr "" "Aqui, :c:func:`PyLong_FromLong` retorna uma nova referência que é " "imediatamente roubada por :c:func:`PyTuple_SetItem`. Quando você quiser " -"continuar usando um objeto, embora a referência a ele seja roubada, use :c:" -"func:`Py_INCREF` para obter outra referência antes de chamar a função de " -"roubo de referência." +"continuar usando um objeto, embora a referência a ele seja roubada, " +"use :c:func:`Py_INCREF` para obter outra referência antes de chamar a função " +"de roubo de referência." #: ../../c-api/intro.rst:427 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." +"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 "" "A propósito, :c:func:`PyTuple_SetItem` é a *única* maneira de definir itens " "de tupla; :c:func:`PySequence_SetItem` e :c:func:`PyObject_SetItem` se " @@ -665,26 +825,39 @@ msgstr "" #: ../../c-api/intro.rst:432 msgid "" -"Equivalent code for populating a list can be written using :c:func:" -"`PyList_New` and :c:func:`PyList_SetItem`." +"Equivalent code for populating a list can be written " +"using :c:func:`PyList_New` and :c:func:`PyList_SetItem`." msgstr "" -"O código equivalente para preencher uma lista pode ser escrita usando :c:" -"func:`PyList_New` e :c:func:`PyList_SetItem`." +"O código equivalente para preencher uma lista pode ser escrita " +"usando :c:func:`PyList_New` e :c:func:`PyList_SetItem`." #: ../../c-api/intro.rst:435 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)::" +"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 "" "No entanto, na prática, você raramente usará essas maneiras de criar e " -"preencher uma tupla ou lista. Existe uma função genérica, :c:func:" -"`Py_BuildValue`, que pode criar objetos mais comuns a partir de valores C, " -"dirigidos por uma :dfn:`string de formato`. Por exemplo, os dois blocos de " -"código acima podem ser substituídos pelos seguintes (que também cuidam da " -"verificação de erros)::" +"preencher uma tupla ou lista. Existe uma função " +"genérica, :c:func:`Py_BuildValue`, que pode criar objetos mais comuns a " +"partir de valores C, dirigidos por uma :dfn:`string de formato`. Por " +"exemplo, os dois blocos de código acima podem ser substituídos pelos " +"seguintes (que também cuidam da verificação de erros)::" + +#: ../../c-api/intro.rst:441 +msgid "" +"PyObject *tuple, *list;\n" +"\n" +"tuple = Py_BuildValue(\"(iis)\", 1, 2, \"three\");\n" +"list = Py_BuildValue(\"[iis]\", 1, 2, \"three\");" +msgstr "" +"PyObject *tuple, *list;\n" +"\n" +"tuple = Py_BuildValue(\"(iis)\", 1, 2, \"três\");\n" +"list = Py_BuildValue(\"[iis]\", 1, 2, \"três\");" #: ../../c-api/intro.rst:446 msgid "" @@ -696,6 +869,57 @@ msgid "" "For example, this function sets all items of a list (actually, any mutable " "sequence) to a given item::" msgstr "" +"É muito mais comum usar :c:func:`PyObject_SetItem` e amigos com itens cujas " +"referências você está apenas pegando emprestado, como argumentos que foram " +"passados para a função que você está escrevendo. Nesse caso, o comportamento " +"deles em relação às referências é muito mais são, já que você não precisa " +"tomar uma nova referência só para poder doá-la (\"mande-a ser roubada\"). " +"Por exemplo, esta função define todos os itens de uma lista (na verdade, " +"qualquer sequência mutável) para um determinado item::" + +#: ../../c-api/intro.rst:453 +msgid "" +"int\n" +"set_all(PyObject *target, PyObject *item)\n" +"{\n" +" Py_ssize_t i, n;\n" +"\n" +" n = PyObject_Length(target);\n" +" if (n < 0)\n" +" return -1;\n" +" for (i = 0; i < n; i++) {\n" +" PyObject *index = PyLong_FromSsize_t(i);\n" +" if (!index)\n" +" return -1;\n" +" if (PyObject_SetItem(target, index, item) < 0) {\n" +" Py_DECREF(index);\n" +" return -1;\n" +" }\n" +" Py_DECREF(index);\n" +" }\n" +" return 0;\n" +"}" +msgstr "" +"int\n" +"set_all(PyObject *target, PyObject *item)\n" +"{\n" +" Py_ssize_t i, n;\n" +"\n" +" n = PyObject_Length(target);\n" +" if (n < 0)\n" +" return -1;\n" +" for (i = 0; i < n; i++) {\n" +" PyObject *index = PyLong_FromSsize_t(i);\n" +" if (!index)\n" +" return -1;\n" +" if (PyObject_SetItem(target, index, item) < 0) {\n" +" Py_DECREF(index);\n" +" return -1;\n" +" }\n" +" Py_DECREF(index);\n" +" }\n" +" return 0;\n" +"}" #: ../../c-api/intro.rst:476 msgid "" @@ -733,9 +957,9 @@ msgstr "" "função depende de qual função você chama apenas --- *a plumagem* (o tipo do " "objeto passado como um argumento para a função) *não entra nela!* Assim, se " "você extrair um item de uma lista usando :c:func:`PyList_GetItem`, você não " -"possui a referência --- mas se obtiver o mesmo item da mesma lista usando :c:" -"func:`PySequence_GetItem` (que leva exatamente os mesmos argumentos), você " -"possui uma referência ao objeto retornado." +"possui a referência --- mas se obtiver o mesmo item da mesma lista " +"usando :c:func:`PySequence_GetItem` (que leva exatamente os mesmos " +"argumentos), você possui uma referência ao objeto retornado." #: ../../c-api/intro.rst:497 msgid "" @@ -744,8 +968,113 @@ msgid "" "and once using :c:func:`PySequence_GetItem`. ::" msgstr "" "Aqui está um exemplo de como você poderia escrever uma função que calcula a " -"soma dos itens em uma lista de inteiros; uma vez usando :c:func:" -"`PyList_GetItem`, e uma vez usando :c:func:`PySequence_GetItem`. ::" +"soma dos itens em uma lista de inteiros; uma vez " +"usando :c:func:`PyList_GetItem`, e uma vez " +"usando :c:func:`PySequence_GetItem`. ::" + +#: ../../c-api/intro.rst:501 +msgid "" +"long\n" +"sum_list(PyObject *list)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +"\n" +" n = PyList_Size(list);\n" +" if (n < 0)\n" +" return -1; /* Not a list */\n" +" for (i = 0; i < n; i++) {\n" +" item = PyList_GetItem(list, i); /* Can't fail */\n" +" if (!PyLong_Check(item)) continue; /* Skip non-integers */\n" +" value = PyLong_AsLong(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Integer too big to fit in a C long, bail out */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" return total;\n" +"}" +msgstr "" +"long\n" +"sum_list(PyObject *list)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +"\n" +" n = PyList_Size(list);\n" +" if (n < 0)\n" +" return -1; /* Não é uma lista */\n" +" for (i = 0; i < n; i++) {\n" +" item = PyList_GetItem(list, i); /* Não pode falhar */\n" +" if (!PyLong_Check(item)) continue; /* Ignora não-inteiros */\n" +" value = PyLong_AsLong(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Inteiro muito grande para caber em um C longo, sai */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" return total;\n" +"}" + +#: ../../c-api/intro.rst:527 +msgid "" +"long\n" +"sum_sequence(PyObject *sequence)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +" n = PySequence_Length(sequence);\n" +" if (n < 0)\n" +" return -1; /* Has no length */\n" +" for (i = 0; i < n; i++) {\n" +" item = PySequence_GetItem(sequence, i);\n" +" if (item == NULL)\n" +" return -1; /* Not a sequence, or other failure */\n" +" if (PyLong_Check(item)) {\n" +" value = PyLong_AsLong(item);\n" +" Py_DECREF(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Integer too big to fit in a C long, bail out */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" else {\n" +" Py_DECREF(item); /* Discard reference ownership */\n" +" }\n" +" }\n" +" return total;\n" +"}" +msgstr "" +"long\n" +"sum_sequence(PyObject *sequence)\n" +"{\n" +" Py_ssize_t i, n;\n" +" long total = 0, value;\n" +" PyObject *item;\n" +" n = PySequence_Length(sequence);\n" +" if (n < 0)\n" +" return -1; /* Não tem comprimento */\n" +" for (i = 0; i < n; i++) {\n" +" item = PySequence_GetItem(sequence, i);\n" +" if (item == NULL)\n" +" return -1; /* Não é uma sequência ou outra falha */\n" +" if (PyLong_Check(item)) {\n" +" value = PyLong_AsLong(item);\n" +" Py_DECREF(item);\n" +" if (value == -1 && PyErr_Occurred())\n" +" /* Inteiro muito grande para caber em um C longo, sai */\n" +" return -1;\n" +" total += value;\n" +" }\n" +" else {\n" +" Py_DECREF(item); /* Descartar propriedade de referência */\n" +" }\n" +" }\n" +" return total;\n" +"}" #: ../../c-api/intro.rst:561 msgid "Types" @@ -754,20 +1083,20 @@ msgstr "Tipos" #: ../../c-api/intro.rst:563 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." +"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 "" "Existem alguns outros tipos de dados que desempenham um papel significativo " -"na API Python/C; a maioria são tipos C simples, como :c:expr:`int`, :c:expr:" -"`long`, :c:expr:`double` e :c:expr:`char*`. Alguns tipos de estrutura são " -"usados para descrever tabelas estáticas usadas para listar as funções " -"exportadas por um módulo ou os atributos de dados de um novo tipo de objeto, " -"e outro é usado para descrever o valor de um número complexo. Eles serão " -"discutidos junto com as funções que os utilizam." +"na API Python/C; a maioria são tipos C simples, " +"como :c:expr:`int`, :c:expr:`long`, :c:expr:`double` e :c:expr:`char*`. " +"Alguns tipos de estrutura são usados para descrever tabelas estáticas usadas " +"para listar as funções exportadas por um módulo ou os atributos de dados de " +"um novo tipo de objeto, e outro é usado para descrever o valor de um número " +"complexo. Eles serão discutidos junto com as funções que os utilizam." #: ../../c-api/intro.rst:573 msgid "" @@ -830,13 +1159,13 @@ msgstr "" 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." +"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 "" "O estado de exceção é mantido no armazenamento por thread (isso é " "equivalente a usar o armazenamento global em uma aplicação sem thread). Uma " @@ -845,55 +1174,55 @@ msgstr "" "retorna uma referência emprestada ao objeto do tipo de exceção quando uma " "exceção ocorreu, e ``NULL`` caso contrário. Existem várias funções para " "definir o estado de exceção: :c:func:`PyErr_SetString` é a função mais comum " -"(embora não a mais geral) para definir o estado de exceção, e :c:func:" -"`PyErr_Clear` limpa o estado da exceção." +"(embora não a mais geral) para definir o estado de exceção, " +"e :c:func:`PyErr_Clear` limpa o estado da exceção." #: ../../c-api/intro.rst:617 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." +"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 "" "O estado de exceção completo consiste em três objetos (todos os quais podem " "ser ``NULL``): o tipo de exceção, o valor de exceção correspondente e o " -"traceback. Eles têm os mesmos significados que o resultado do Python de " +"traceback. Eles têm os mesmos significados que o resultado no Python de " "``sys.exc_info()``; no entanto, eles não são os mesmos: os objetos Python " -"representam a última exceção sendo tratada por uma instrução Python :keyword:" -"`try` ... :keyword:`except`, enquanto o estado de exceção de nível C só " -"existe enquanto uma exceção está sendo transmitido entre funções C até " -"atingir o loop principal do interpretador de bytecode Python, que se " -"encarrega de transferi-lo para ``sys.exc_info()`` e amigos." +"representam a última exceção sendo tratada por uma instrução " +"Python :keyword:`try` ... :keyword:`except`, enquanto o estado de exceção de " +"nível C só existe enquanto uma exceção está sendo transmitido entre funções " +"C até atingir o laço de repetição principal do interpretador de bytecode " +"Python, que se encarrega de transferi-lo para ``sys.exc_info()`` e amigos." #: ../../c-api/intro.rst:629 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." +"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 "" "Observe que a partir do Python 1.5, a maneira preferida e segura para thread " -"para acessar o estado de exceção do código Python é chamar a função :func:" -"`sys.exc_info`, que retorna o estado de exceção por thread para o código " -"Python. Além disso, a semântica de ambas as maneiras de acessar o estado de " -"exceção mudou, de modo que uma função que captura uma exceção salvará e " -"restaurará o estado de exceção de seu segmento de modo a preservar o estado " -"de exceção de seu chamador. Isso evita bugs comuns no código de tratamento " -"de exceções causados por uma função aparentemente inocente sobrescrevendo a " -"exceção sendo tratada; também reduz a extensão da vida útil frequentemente " -"indesejada para objetos que são referenciados pelos quadros de pilha no " -"traceback." +"para acessar o estado de exceção do código Python é chamar a " +"função :func:`sys.exc_info`, que retorna o estado de exceção por thread para " +"o código Python. Além disso, a semântica de ambas as maneiras de acessar o " +"estado de exceção mudou, de modo que uma função que captura uma exceção " +"salvará e restaurará o estado de exceção de seu segmento de modo a preservar " +"o estado de exceção de seu chamador. Isso evita bugs comuns no código de " +"tratamento de exceções causados por uma função aparentemente inocente " +"sobrescrevendo a exceção sendo tratada; também reduz a extensão da vida útil " +"frequentemente indesejada para objetos que são referenciados pelos quadros " +"de pilha no traceback." #: ../../c-api/intro.rst:640 msgid "" @@ -921,22 +1250,131 @@ msgid "" "following example function shows some error cleanup. First, to remind you " "why you like Python, we show the equivalent Python code::" msgstr "" +"Um exemplo simples de detecção de exceções e transmiti-las é mostrado no " +"exemplo :c:func:`!sum_sequence` acima. Acontece que este exemplo não precisa " +"limpar nenhuma referência de propriedade quando detecta um erro. A função de " +"exemplo a seguir mostra alguma limpeza de erro. Primeiro, para lembrar por " +"que você gosta de Python, mostramos o código Python equivalente::" + +#: ../../c-api/intro.rst:655 +msgid "" +"def incr_item(dict, key):\n" +" try:\n" +" item = dict[key]\n" +" except KeyError:\n" +" item = 0\n" +" dict[key] = item + 1" +msgstr "" +"def incr_item(dict, key):\n" +" try:\n" +" item = dict[key]\n" +" except KeyError:\n" +" item = 0\n" +" dict[key] = item + 1" #: ../../c-api/intro.rst:664 msgid "Here is the corresponding C code, in all its glory::" msgstr "Aqui está o código C correspondente, em toda sua glória::" +#: ../../c-api/intro.rst:666 +msgid "" +"int\n" +"incr_item(PyObject *dict, PyObject *key)\n" +"{\n" +" /* Objects all initialized to NULL for Py_XDECREF */\n" +" PyObject *item = NULL, *const_one = NULL, *incremented_item = NULL;\n" +" int rv = -1; /* Return value initialized to -1 (failure) */\n" +"\n" +" item = PyObject_GetItem(dict, key);\n" +" if (item == NULL) {\n" +" /* Handle KeyError only: */\n" +" if (!PyErr_ExceptionMatches(PyExc_KeyError))\n" +" goto error;\n" +"\n" +" /* Clear the error and use zero: */\n" +" PyErr_Clear();\n" +" item = PyLong_FromLong(0L);\n" +" if (item == NULL)\n" +" goto error;\n" +" }\n" +" const_one = PyLong_FromLong(1L);\n" +" if (const_one == NULL)\n" +" goto error;\n" +"\n" +" incremented_item = PyNumber_Add(item, const_one);\n" +" if (incremented_item == NULL)\n" +" goto error;\n" +"\n" +" if (PyObject_SetItem(dict, key, incremented_item) < 0)\n" +" goto error;\n" +" rv = 0; /* Success */\n" +" /* Continue with cleanup code */\n" +"\n" +" error:\n" +" /* Cleanup code, shared by success and failure path */\n" +"\n" +" /* Use Py_XDECREF() to ignore NULL references */\n" +" Py_XDECREF(item);\n" +" Py_XDECREF(const_one);\n" +" Py_XDECREF(incremented_item);\n" +"\n" +" return rv; /* -1 for error, 0 for success */\n" +"}" +msgstr "" +"int\n" +"incr_item(PyObject *dict, PyObject *key)\n" +"{\n" +" /* Objetos todos inicializados para NULL para Py_XDECREF */\n" +" PyObject *item = NULL, *const_one = NULL, *incremented_item = NULL;\n" +" int rv = -1; /* Retorna valor inicializado para -1 (falha) */\n" +"\n" +" item = PyObject_GetItem(dict, key);\n" +" if (item == NULL) {\n" +" /* Trata de KeyError apenas: */\n" +" if (!PyErr_ExceptionMatches(PyExc_KeyError))\n" +" goto error;\n" +"\n" +" /* Limpa o erro e usa zero: */\n" +" PyErr_Clear();\n" +" item = PyLong_FromLong(0L);\n" +" if (item == NULL)\n" +" goto error;\n" +" }\n" +" const_one = PyLong_FromLong(1L);\n" +" if (const_one == NULL)\n" +" goto error;\n" +"\n" +" incremented_item = PyNumber_Add(item, const_one);\n" +" if (incremented_item == NULL)\n" +" goto error;\n" +"\n" +" if (PyObject_SetItem(dict, key, incremented_item) < 0)\n" +" goto error;\n" +" rv = 0; /* Success */\n" +" /* Continua com o código de limpeza */\n" +"\n" +" error:\n" +" /* Código de limpeza, compartilhado pelo caminho sucesso e falha */\n" +"\n" +" /* Usa Py_XDECREF() para ignorar referências NULL */\n" +" Py_XDECREF(item);\n" +" Py_XDECREF(const_one);\n" +" Py_XDECREF(incremented_item);\n" +"\n" +" return rv; /* -1 para erro, 0 para sucesso */\n" +"}" + #: ../../c-api/intro.rst:716 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." +"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 "" "Este exemplo representa um uso endossado da instrução ``goto`` em C! Ele " "ilustra o uso de :c:func:`PyErr_ExceptionMatches` e :c:func:`PyErr_Clear` " @@ -974,22 +1412,23 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" "A função de inicialização básica é :c:func:`Py_Initialize`. Isso inicializa " -"a tabela de módulos carregados e cria os módulos fundamentais :mod:" -"`builtins`, :mod:`__main__` e :mod:`sys`. Ela também inicializa o caminho de " -"pesquisa de módulos (``sys.path``)." +"a tabela de módulos carregados e cria os módulos " +"fundamentais :mod:`builtins`, :mod:`__main__` e :mod:`sys`. Ela também " +"inicializa o caminho de pesquisa de módulos (``sys.path``)." #: ../../c-api/intro.rst:750 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 `." +":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:func:`Py_Initialize` não define a \"lista de argumentos de " -"script\" (``sys.argv``). Se esta variável for necessária para o código " -"Python que será executado posteriormente, :c:member:`PyConfig.argv` e :c:" -"member:`PyConfig.parse_argv` devem estar definidas; veja :ref:`Configuração " -"de inicialização do Python `." +":c:func:`Py_Initialize` não define a \"lista de argumentos de script\" " +"(``sys.argv``). Se esta variável for necessária para o código Python que " +"será executado posteriormente, :c:member:`PyConfig.argv` " +"e :c:member:`PyConfig.parse_argv` devem estar definidas; " +"veja :ref:`Configuração de inicialização do Python `." #: ../../c-api/intro.rst:755 msgid "" @@ -1004,21 +1443,21 @@ msgid "" msgstr "" "Na maioria dos sistemas (em particular, no Unix e no Windows, embora os " "detalhes sejam ligeiramente diferentes), :c:func:`Py_Initialize` calcula o " -"caminho de pesquisa do módulo com base em sua melhor estimativa para a " -"localização do executável do interpretador Python padrão, assumindo que a " +"caminho de pesquisa de módulos com base em sua melhor estimativa para a " +"localização do executável do interpretador Python padrão, presumindo que a " "biblioteca Python é encontrada em um local fixo em relação ao executável do " -"interpretador Python. Em particular, ele procura por um diretório chamado :" -"file:`lib/python{X.Y}` relativo ao diretório pai onde o executável chamado :" -"file:`python` é encontrado no caminho de pesquisa de comandos do shell (a " -"variável de ambiente :envvar:`PATH`)." +"interpretador Python. Em particular, ele procura por um diretório " +"chamado :file:`lib/python{X.Y}` relativo ao diretório pai onde o executável " +"chamado :file:`python` é encontrado no caminho de pesquisa de comandos do " +"shell (a variável de ambiente :envvar:`PATH`)." #: ../../c-api/intro.rst:764 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 " +"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 "" @@ -1036,41 +1475,43 @@ msgid "" "``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " "that :envvar:`PYTHONHOME` still overrides this and :envvar:`PYTHONPATH` is " "still inserted in front of the standard path. An application that requires " -"total control has to provide its own implementation of :c:func:" -"`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, and :c:" -"func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." +"total control has to provide its own implementation " +"of :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, " +"and :c:func:`Py_GetProgramFullPath` (all defined in :file:`Modules/" +"getpath.c`)." msgstr "" "A aplicação de incorporação pode orientar a pesquisa chamando " "``Py_SetProgramName(file)`` *antes* de chamar :c:func:`Py_Initialize`. " "Observe que :envvar:`PYTHONHOME` ainda substitui isso e :envvar:`PYTHONPATH` " "ainda é inserido na frente do caminho padrão. Uma aplicação que requer " -"controle total deve fornecer sua própria implementação de :c:func:" -"`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix` e :c:func:" -"`Py_GetProgramFullPath` (todas definidas em :file:`Modules/getpath.c`)." +"controle total deve fornecer sua própria implementação " +"de :c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix` " +"e :c:func:`Py_GetProgramFullPath` (todas definidas em :file:`Modules/" +"getpath.c`)." #: ../../c-api/intro.rst:789 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." +"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 "" "Às vezes, é desejável \"desinicializar\" o Python. Por exemplo, a aplicação " -"pode querer iniciar novamente (fazer outra chamada para :c:func:" -"`Py_Initialize`) ou a aplicação simplesmente termina com o uso de Python e " -"deseja liberar memória alocada pelo Python. Isso pode ser feito chamando :c:" -"func:`Py_FinalizeEx`. A função :c:func:`Py_IsInitialized` retorna verdadeiro " -"se o Python está atualmente no estado inicializado. Mais informações sobre " -"essas funções são fornecidas em um capítulo posterior. Observe que :c:func:" -"`Py_FinalizeEx` *não* libera toda a memória alocada pelo interpretador " -"Python, por exemplo, a memória alocada por módulos de extensão atualmente " -"não pode ser liberada." +"pode querer iniciar novamente (fazer outra chamada " +"para :c:func:`Py_Initialize`) ou a aplicação simplesmente termina com o uso " +"de Python e deseja liberar memória alocada pelo Python. Isso pode ser feito " +"chamando :c:func:`Py_FinalizeEx`. A função :c:func:`Py_IsInitialized` " +"retorna verdadeiro se o Python está atualmente no estado inicializado. Mais " +"informações sobre essas funções são fornecidas em um capítulo posterior. " +"Observe que :c:func:`Py_FinalizeEx` *não* libera toda a memória alocada pelo " +"interpretador Python, por exemplo, a memória alocada por módulos de extensão " +"atualmente não pode ser liberada." #: ../../c-api/intro.rst:803 msgid "Debugging Builds" @@ -1089,11 +1530,11 @@ msgstr "" #: ../../c-api/intro.rst:809 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 " +"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 "" "Uma lista completa dos vários tipos de compilações de depuração está no " @@ -1108,12 +1549,19 @@ msgstr "" msgid "" "Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined " "produces what is generally meant by :ref:`a debug build of Python `. :c:macro:`!Py_DEBUG` is enabled in the Unix build by adding :option:" -"`--with-pydebug` to the :file:`./configure` command. It is also implied by " -"the presence of the not-Python-specific :c:macro:`!_DEBUG` macro. When :c:" -"macro:`!Py_DEBUG` is enabled in the Unix build, compiler optimization is " -"disabled." -msgstr "" +"build>`. :c:macro:`!Py_DEBUG` is enabled in the Unix build by " +"adding :option:`--with-pydebug` to the :file:`./configure` command. It is " +"also implied by the presence of the not-Python-specific :c:macro:`!_DEBUG` " +"macro. When :c:macro:`!Py_DEBUG` is enabled in the Unix build, compiler " +"optimization is disabled." +msgstr "" +"Compilar o interpretador com a macro :c:macro:`!Py_DEBUG` definida produz o " +"que geralmente se entende por :ref:`uma construção de depuração do Python " +"`. :c:macro:`!Py_DEBUG` é habilitada na construção Unix " +"adicionando :option:`--with-pydebug` ao comando :file:`./configure`. Também " +"está implícito na presença da macro não específica do Python :c:macro:`!" +"_DEBUG`. Quando :c:macro:`!Py_DEBUG` está habilitado na construção do Unix, " +"a otimização do compilador é desabilitada." #: ../../c-api/intro.rst:825 msgid "" @@ -1126,12 +1574,12 @@ msgstr "" #: ../../c-api/intro.rst:828 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.)" +"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 "" "Definir :c:macro:`Py_TRACE_REFS` habilita o rastreamento de referência (veja " "a opção :option:`opção --with-trace-refs de configure <--with-trace-refs>`). " @@ -1159,71 +1607,71 @@ msgstr "tipo" #: ../../c-api/intro.rst:327 msgid "Py_INCREF (C function)" -msgstr "" +msgstr "Py_INCREF (função C)" #: ../../c-api/intro.rst:327 msgid "Py_DECREF (C function)" -msgstr "" +msgstr "Py_DECREF (função C)" #: ../../c-api/intro.rst:403 msgid "PyList_SetItem (C function)" -msgstr "" +msgstr "PyList_SetItem (função C)" #: ../../c-api/intro.rst:403 msgid "PyTuple_SetItem (C function)" -msgstr "" +msgstr "PyTuple_SetItem (função C)" #: ../../c-api/intro.rst:474 msgid "set_all()" -msgstr "" +msgstr "set_all()" #: ../../c-api/intro.rst:493 msgid "PyList_GetItem (C function)" -msgstr "" +msgstr "PyList_GetItem (função C)" #: ../../c-api/intro.rst:493 msgid "PySequence_GetItem (C function)" -msgstr "" +msgstr "PySequence_GetItem (função C)" #: ../../c-api/intro.rst:523 msgid "sum_list()" -msgstr "" +msgstr "sum_list()" #: ../../c-api/intro.rst:555 ../../c-api/intro.rst:647 msgid "sum_sequence()" -msgstr "" +msgstr "sum_sequence()" #: ../../c-api/intro.rst:590 msgid "PyErr_Occurred (C function)" -msgstr "" +msgstr "PyErr_Occurred (função C)" #: ../../c-api/intro.rst:603 msgid "PyErr_SetString (C function)" -msgstr "" +msgstr "PyErr_SetString (função C)" #: ../../c-api/intro.rst:603 ../../c-api/intro.rst:711 msgid "PyErr_Clear (C function)" -msgstr "" +msgstr "PyErr_Clear (função C)" #: ../../c-api/intro.rst:627 msgid "exc_info (in module sys)" -msgstr "" +msgstr "exc_info (no módulo sys)" #: ../../c-api/intro.rst:662 ../../c-api/intro.rst:709 msgid "incr_item()" -msgstr "" +msgstr "incr_item()" #: ../../c-api/intro.rst:711 msgid "PyErr_ExceptionMatches (C function)" -msgstr "" +msgstr "PyErr_ExceptionMatches (função C)" #: ../../c-api/intro.rst:711 msgid "Py_XDECREF (C function)" -msgstr "" +msgstr "Py_XDECREF (função C)" #: ../../c-api/intro.rst:737 msgid "Py_Initialize (C function)" -msgstr "" +msgstr "Py_Initialize (função C)" #: ../../c-api/intro.rst:737 msgid "module" @@ -1251,28 +1699,28 @@ msgstr "caminho" #: ../../c-api/intro.rst:737 msgid "path (in module sys)" -msgstr "" +msgstr "path (no módulo sys)" #: ../../c-api/intro.rst:772 msgid "Py_SetProgramName (C function)" -msgstr "" +msgstr "Py_SetProgramName (função C)" #: ../../c-api/intro.rst:772 msgid "Py_GetPath (C function)" -msgstr "" +msgstr "Py_GetPath (função C)" #: ../../c-api/intro.rst:772 msgid "Py_GetPrefix (C function)" -msgstr "" +msgstr "Py_GetPrefix (função C)" #: ../../c-api/intro.rst:772 msgid "Py_GetExecPrefix (C function)" -msgstr "" +msgstr "Py_GetExecPrefix (função C)" #: ../../c-api/intro.rst:772 msgid "Py_GetProgramFullPath (C function)" -msgstr "" +msgstr "Py_GetProgramFullPath (função C)" #: ../../c-api/intro.rst:787 msgid "Py_IsInitialized (C function)" -msgstr "" +msgstr "Py_IsInitialized (função C)" diff --git a/c-api/iter.po b/c-api/iter.po index abaf815e1..60a263604 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Raphael Mendonça, 2021 -# Italo Penaforte , 2021 -# Rafael Fontenelle , 2022 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2022\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -35,8 +33,9 @@ msgstr "Existem duas funções especificas para trabalhar com iteradores." #: ../../c-api/iter.rst:12 msgid "" -"Return non-zero if the object *o* can be safely passed to :c:func:" -"`PyIter_Next`, and ``0`` otherwise. This function always succeeds." +"Return non-zero if the object *o* can be safely passed " +"to :c:func:`PyIter_Next`, and ``0`` otherwise. This function always " +"succeeds." msgstr "" "Retorna valor diferente de zero se o objeto *o* puder ser passado com " "segurança para :c:func:`PyIter_Next`, e ``0`` caso contrário. Esta função " @@ -47,8 +46,9 @@ msgid "" "Return non-zero if the object *o* provides the :class:`AsyncIterator` " "protocol, and ``0`` otherwise. This function always succeeds." msgstr "" -"Retorna valor diferente de zero se o objeto *o* fornecer o protocolo :class:" -"`AsyncIterator` e ``0`` caso contrário. Esta função sempre é bem-sucedida." +"Retorna valor diferente de zero se o objeto *o* fornecer o " +"protocolo :class:`AsyncIterator` e ``0`` caso contrário. Esta função sempre " +"é bem-sucedida." #: ../../c-api/iter.rst:24 msgid "" @@ -71,12 +71,60 @@ msgstr "" "Para escrever um laço que itere sobre um iterador, o código C deve ser algo " "como isto::" +#: ../../c-api/iter.rst:33 +msgid "" +"PyObject *iterator = PyObject_GetIter(obj);\n" +"PyObject *item;\n" +"\n" +"if (iterator == NULL) {\n" +" /* propagate error */\n" +"}\n" +"\n" +"while ((item = PyIter_Next(iterator))) {\n" +" /* do something with item */\n" +" ...\n" +" /* release reference when done */\n" +" Py_DECREF(item);\n" +"}\n" +"\n" +"Py_DECREF(iterator);\n" +"\n" +"if (PyErr_Occurred()) {\n" +" /* propagate error */\n" +"}\n" +"else {\n" +" /* continue doing useful work */\n" +"}" +msgstr "" +"PyObject *iterator = PyObject_GetIter(obj);\n" +"PyObject *item;\n" +"\n" +"if (iterator == NULL) {\n" +" /* propaga o erro */\n" +"}\n" +"\n" +"while ((item = PyIter_Next(iterator))) {\n" +" /* faz algo com o item */\n" +" ...\n" +" /* liberar a referência quando concluído */\n" +" Py_DECREF(item);\n" +"}\n" +"\n" +"Py_DECREF(iterator);\n" +"\n" +"if (PyErr_Occurred()) {\n" +" /* propaga o erro */\n" +"}\n" +"else {\n" +" /* continua fazendo algum trabalho útil */\n" +"}" + #: ../../c-api/iter.rst:59 msgid "" "The enum value used to represent different results of :c:func:`PyIter_Send`." msgstr "" -"O valor de enum usado para representar diferentes resultados de :c:func:" -"`PyIter_Send`." +"O valor de enum usado para representar diferentes resultados " +"de :c:func:`PyIter_Send`." #: ../../c-api/iter.rst:66 msgid "Sends the *arg* value into the iterator *iter*. Returns:" @@ -93,7 +141,7 @@ msgstr "" msgid "" "``PYGEN_NEXT`` if iterator yields. Yielded value is returned via *presult*." msgstr "" -"``PYGEN_NEXT`` se o iterador render. O valor preduzido é retornado via " +"``PYGEN_NEXT`` se o iterador render. O valor produzido é retornado via " "*presult*." #: ../../c-api/iter.rst:70 diff --git a/c-api/iterator.po b/c-api/iterator.po index af9fe0a3d..bd330980d 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Felipefpl, 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,10 +30,10 @@ msgstr "Objetos Iteradores" #: ../../c-api/iterator.rst:8 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." +"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 "" "O Python fornece dois objetos iteradores de propósito geral. O primeiro, um " "iterador de sequência, trabalha com uma sequência arbitrária suportando o " @@ -48,9 +47,9 @@ msgid "" "one-argument form of the :func:`iter` built-in function for built-in " "sequence types." msgstr "" -"Objeto de tipo para objetos iteradores retornados por :c:func:" -"`PySeqIter_New` e a forma de um argumento da função embutida :func:`iter` " -"para os tipos de sequência embutidos." +"Objeto de tipo para objetos iteradores retornados " +"por :c:func:`PySeqIter_New` e a forma de um argumento da função " +"embutida :func:`iter` para os tipos de sequência embutidos." #: ../../c-api/iterator.rst:24 msgid "" @@ -75,9 +74,9 @@ 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 "" -"Objeto de tipo para objetos iteradores retornados por :c:func:" -"`PyCallIter_New` e a forma de dois argumentos da função embutida :func:" -"`iter`." +"Objeto de tipo para objetos iteradores retornados " +"por :c:func:`PyCallIter_New` e a forma de dois argumentos da função " +"embutida :func:`iter`." #: ../../c-api/iterator.rst:43 msgid "" diff --git a/c-api/list.po b/c-api/list.po index 15cace0d3..7a3197e76 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -1,28 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Livia Cavalcanti , 2021 -# Marco Rougeth , 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -68,9 +65,9 @@ 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`." +"``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`." msgstr "" "Se *len* for maior que zero, os itens do objeto de lista retornado são " "definidos como ``NULL``. Portanto, você não pode usar funções API abstratas, " @@ -134,13 +131,14 @@ msgstr "" #: ../../c-api/list.rst:91 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." +"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 "" -"Esta macro \"rouba\" uma referência para o *item* e, ao contrário de :c:func:" -"`PyList_SetItem`, *não* descarta uma referência para nenhum item que esteja " -"sendo substituído; qualquer referência em *list* será perdida." +"Esta macro \"rouba\" uma referência para o *item* e, ao contrário " +"de :c:func:`PyList_SetItem`, *não* descarta uma referência para nenhum item " +"que esteja sendo substituído; qualquer referência em *list* será perdida." #: ../../c-api/list.rst:99 msgid "" diff --git a/c-api/long.po b/c-api/long.po index 94e9e47db..ff69d8bff 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -1,26 +1,26 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Raphael Mendonça, 2021 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 +# python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: python-doc bot, 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -42,8 +42,8 @@ msgid "" "disambiguate." msgstr "" "Em caso de erro, a maioria das APIs ``PyLong_As*`` retorna ``(tipo de " -"retorno)-1`` que não pode ser distinguido de um número. Use :c:func:" -"`PyErr_Occurred` para desambiguar." +"retorno)-1`` que não pode ser distinguido de um número. " +"Use :c:func:`PyErr_Occurred` para desambiguar." #: ../../c-api/long.rst:18 msgid "This subtype of :c:type:`PyObject` represents a Python integer object." @@ -60,11 +60,11 @@ msgstr "" #: ../../c-api/long.rst:29 msgid "" -"Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:" -"type:`PyLongObject`. This function always succeeds." +"Return true if its argument is a :c:type:`PyLongObject` or a subtype " +"of :c:type:`PyLongObject`. This function always succeeds." msgstr "" -"Retorna true se seu argumento é um :c:type:`PyLongObject` ou um subtipo de :" -"c:type:`PyLongObject`. Esta função sempre tem sucesso." +"Retorna true se seu argumento é um :c:type:`PyLongObject` ou um subtipo " +"de :c:type:`PyLongObject`. Esta função sempre tem sucesso." #: ../../c-api/long.rst:35 msgid "" @@ -87,12 +87,17 @@ msgid "" "integers between ``-5`` and ``256``. When you create an int in that range " "you actually just get back a reference to the existing object." msgstr "" +"A implementação atual mantém um vetor de objetos inteiros para todos os " +"inteiros entre ``-5`` e ``256``. Quando você cria um int nesse intervalo, " +"você na verdade apenas obtém uma referência ao objeto existente." #: ../../c-api/long.rst:50 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, " "or ``NULL`` on failure." msgstr "" +"Retorna um novo objeto :c:type:`PyLongObject` de um :c:expr:`unsigned long` " +"C ou ``NULL`` em caso de falha." #: ../../c-api/long.rst:56 msgid "" @@ -115,12 +120,16 @@ msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or " "``NULL`` on failure." msgstr "" +"Retorna um novo objeto :c:type:`PyLongObject` de um :c:expr:`long long` C ou " +"``NULL`` em caso de falha." #: ../../c-api/long.rst:74 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " "long`, or ``NULL`` on failure." msgstr "" +"Retorna um novo objeto :c:type:`PyLongObject` de um :c:expr:`unsigned long " +"long` C ou ``NULL`` em caso de falha." #: ../../c-api/long.rst:80 msgid "" @@ -144,11 +153,23 @@ msgid "" "digits or *str* is not NULL-terminated following the digits and trailing " "whitespace, :exc:`ValueError` will be raised." msgstr "" +"Retorna um novo :c:type:`PyLongObject` com base no valor da string em *str*, " +"que é interpretado de acordo com a raiz em *base* ou ``NULL`` em caso de " +"falha. Se *pend* não for ``NULL``, *\\*pend* apontará para o fim do *str* em " +"caso de sucesso ou para seu primeiro caractere que não pode ser processado " +"em caso de erro. Se *base* for ``0``, *str* é interpretado usando a " +"definição de :ref:`integers`; neste caso, zeros à esquerda em um número " +"decimal diferente de zero aumenta um :exc:`ValueError`. Se *base* não for " +"``0``, deve estar entre ``2`` e ``36``, inclusive. Espaços em branco no " +"início ou no final e sublinhados simples após um especificador de base e " +"entre dígitos são ignorados. Se não houver dígitos ou *str* não for " +"terminado em NULL após os dígitos e espaços em branco à " +"direita, :exc:`ValueError` será levantada." #: ../../c-api/long.rst:97 msgid "" -"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :" -"c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can " +"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert " +"a :c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can " "call those from C using :c:func:`PyObject_CallMethod`." msgstr "" @@ -168,7 +189,7 @@ msgstr "" "Cria um inteiro Python a partir do ponteiro *p*. O valor do ponteiro pode " "ser recuperado do valor resultante usando :c:func:`PyLong_AsVoidPtr`." -#: ../../c-api/long.rst:123 ../../c-api/long.rst:141 +#: ../../c-api/long.rst:123 ../../c-api/long.rst:151 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__` " @@ -177,57 +198,70 @@ msgstr "" #: ../../c-api/long.rst:127 msgid "" -"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" -"expr:`long`." +"Raise :exc:`OverflowError` if the value of *obj* is out of range for " +"a :c:expr:`long`." msgstr "" -#: ../../c-api/long.rst:130 ../../c-api/long.rst:150 ../../c-api/long.rst:171 -#: ../../c-api/long.rst:191 ../../c-api/long.rst:214 +#: ../../c-api/long.rst:130 ../../c-api/long.rst:160 ../../c-api/long.rst:181 +#: ../../c-api/long.rst:201 ../../c-api/long.rst:224 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``-1`` no caso de erro. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../../c-api/long.rst:132 ../../c-api/long.rst:152 ../../c-api/long.rst:173 -#: ../../c-api/long.rst:195 ../../c-api/long.rst:279 ../../c-api/long.rst:299 +#: ../../c-api/long.rst:132 ../../c-api/long.rst:162 ../../c-api/long.rst:183 +#: ../../c-api/long.rst:205 ../../c-api/long.rst:289 ../../c-api/long.rst:309 msgid "Use :meth:`~object.__index__` if available." msgstr "Usa :meth:`~object.__index__`, se disponível." -#: ../../c-api/long.rst:135 ../../c-api/long.rst:155 ../../c-api/long.rst:176 -#: ../../c-api/long.rst:198 ../../c-api/long.rst:282 ../../c-api/long.rst:302 +#: ../../c-api/long.rst:135 ../../c-api/long.rst:165 ../../c-api/long.rst:186 +#: ../../c-api/long.rst:208 ../../c-api/long.rst:292 ../../c-api/long.rst:312 msgid "This function will no longer use :meth:`~object.__int__`." msgstr "" -#: ../../c-api/long.rst:145 +#: ../../c-api/long.rst:142 +msgid "" +"A :term:`soft deprecated` alias. Exactly equivalent to the preferred " +"``PyLong_AsLong``. In particular, it can fail with :exc:`OverflowError` or " +"another exception." +msgstr "" + +#: ../../c-api/long.rst:146 +msgid "The function is soft deprecated." +msgstr "" + +#: ../../c-api/long.rst:155 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." +"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:164 ../../c-api/long.rst:182 +#: ../../c-api/long.rst:174 ../../c-api/long.rst:192 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:168 +#: ../../c-api/long.rst:178 msgid "" -"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" -"expr:`long long`." +"Raise :exc:`OverflowError` if the value of *obj* is out of range for " +"a :c:expr:`long long`." msgstr "" -#: ../../c-api/long.rst:186 +#: ../../c-api/long.rst:196 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." +"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:208 +#: ../../c-api/long.rst:218 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." @@ -235,27 +269,27 @@ msgstr "" "Retorna uma representação de :c:type:`Py_ssize_t` C de *pylong*. *pylong* " "deve ser uma instância de :c:type:`PyLongObject`." -#: ../../c-api/long.rst:211 +#: ../../c-api/long.rst:221 msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" -"type:`Py_ssize_t`." +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:type:`Py_ssize_t`." msgstr "" "Levanta :exc:`OverflowError` se o valor de *pylong* estiver fora do " "intervalo de um :c:type:`Py_ssize_t`." -#: ../../c-api/long.rst:223 +#: ../../c-api/long.rst:233 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:226 +#: ../../c-api/long.rst:236 msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" -"expr:`unsigned long`." +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:expr:`unsigned long`." msgstr "" -#: ../../c-api/long.rst:229 +#: ../../c-api/long.rst:239 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -263,7 +297,7 @@ msgstr "" "Retorna ``(unsigned long)-1`` no caso de erro. Use :c:func:`PyErr_Occurred` " "para desambiguar." -#: ../../c-api/long.rst:239 +#: ../../c-api/long.rst:249 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." @@ -271,15 +305,15 @@ msgstr "" "Retorna uma representação de :c:type:`size_t` C de *pylong*. *pylong* deve " "ser uma instância de :c:type:`PyLongObject`." -#: ../../c-api/long.rst:242 +#: ../../c-api/long.rst:252 msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" -"type:`size_t`." +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:type:`size_t`." msgstr "" "Levanta :exc:`OverflowError` se o valor de *pylong* estiver fora do " "intervalo de um :c:type:`size_t`." -#: ../../c-api/long.rst:245 +#: ../../c-api/long.rst:255 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -287,47 +321,48 @@ msgstr "" "Retorna ``(size)-1`` no caso de erro. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../../c-api/long.rst:254 +#: ../../c-api/long.rst:264 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:257 +#: ../../c-api/long.rst:267 msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" -"c:expr:`unsigned long long`." +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"an :c:expr:`unsigned long long`." msgstr "" -#: ../../c-api/long.rst:260 +#: ../../c-api/long.rst:270 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -"Retorna ``(unsigned long long)-1`` no caso de erro. Use :c:func:" -"`PyErr_Occurred` para desambiguar." +"Retorna ``(unsigned long long)-1`` no caso de erro. " +"Use :c:func:`PyErr_Occurred` para desambiguar." -#: ../../c-api/long.rst:263 +#: ../../c-api/long.rst:273 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" -"Um *pylong* negativo agora levanta :exc:`OverflowError`, não :exc:" -"`TypeError`." +"Um *pylong* negativo agora levanta :exc:`OverflowError`, " +"não :exc:`TypeError`." -#: ../../c-api/long.rst:269 +#: ../../c-api/long.rst:279 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`." +"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:273 +#: ../../c-api/long.rst:283 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:276 +#: ../../c-api/long.rst:286 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -335,91 +370,103 @@ msgstr "" "Retorna ``(unsigned long)-1`` no caso de erro. Use :c:func:`PyErr_Occurred` " "para desambiguar." -#: ../../c-api/long.rst:288 +#: ../../c-api/long.rst:298 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`." +"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:293 +#: ../../c-api/long.rst:303 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:296 +#: ../../c-api/long.rst:306 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." msgstr "" -"Retorna ``(unsigned long long)-1`` no caso de erro. Use :c:func:" -"`PyErr_Occurred` para desambiguar." +"Retorna ``(unsigned long long)-1`` no caso de erro. " +"Use :c:func:`PyErr_Occurred` para desambiguar." -#: ../../c-api/long.rst:308 +#: ../../c-api/long.rst:318 msgid "" "Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: ../../c-api/long.rst:311 +#: ../../c-api/long.rst:321 msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" -"expr:`double`." +"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " +"a :c:expr:`double`." msgstr "" -#: ../../c-api/long.rst:314 +#: ../../c-api/long.rst:324 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``-1.0`` no caso de erro. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../../c-api/long.rst:319 +#: ../../c-api/long.rst:329 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`." +"assured to produce a usable :c:expr:`void` pointer for values created " +"with :c:func:`PyLong_FromVoidPtr`." msgstr "" -#: ../../c-api/long.rst:324 +#: ../../c-api/long.rst:334 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``NULL`` no caso de erro. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../../c-api/long.rst:329 +#: ../../c-api/long.rst:339 +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:343 +msgid "On failure, return ``NULL`` with an exception set." +msgstr "Em caso de falha, retorna ``NULL`` com uma exceção definida." + +#: ../../c-api/long.rst:350 msgid "Return 1 if *op* is compact, 0 otherwise." msgstr "" -#: ../../c-api/long.rst:331 +#: ../../c-api/long.rst:352 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:`calling " +"“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:`calling " "` :meth:`int.to_bytes`." msgstr "" -#: ../../c-api/long.rst:337 +#: ../../c-api/long.rst:358 msgid "The speedup is expected to be negligible for most users." msgstr "" -#: ../../c-api/long.rst:339 +#: ../../c-api/long.rst:360 msgid "" "Exactly what values are considered compact is an implementation detail and " "is subject to change." msgstr "" -#: ../../c-api/long.rst:344 +#: ../../c-api/long.rst:368 msgid "" "If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " "return its value." msgstr "" -#: ../../c-api/long.rst:347 +#: ../../c-api/long.rst:371 msgid "Otherwise, the return value is undefined." msgstr "" @@ -439,19 +486,19 @@ msgstr "inteiro" msgid "LONG_MAX (C macro)" msgstr "" -#: ../../c-api/long.rst:119 ../../c-api/long.rst:161 ../../c-api/long.rst:204 -#: ../../c-api/long.rst:219 ../../c-api/long.rst:235 ../../c-api/long.rst:251 +#: ../../c-api/long.rst:119 ../../c-api/long.rst:171 ../../c-api/long.rst:214 +#: ../../c-api/long.rst:229 ../../c-api/long.rst:245 ../../c-api/long.rst:261 msgid "OverflowError (built-in exception)" msgstr "" -#: ../../c-api/long.rst:204 +#: ../../c-api/long.rst:214 msgid "PY_SSIZE_T_MAX (C macro)" msgstr "" -#: ../../c-api/long.rst:219 +#: ../../c-api/long.rst:229 msgid "ULONG_MAX (C macro)" msgstr "" -#: ../../c-api/long.rst:235 +#: ../../c-api/long.rst:245 msgid "SIZE_MAX (C macro)" msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index 61da90118..14c7bb6b2 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -29,11 +29,11 @@ msgstr "Protocolo de mapeamento" #: ../../c-api/mapping.rst:8 msgid "" -"See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" -"`PyObject_DelItem`." +"See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` " +"and :c:func:`PyObject_DelItem`." msgstr "" -"Veja também :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` e :c:func:" -"`PyObject_DelItem`." +"Veja também :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` " +"e :c:func:`PyObject_DelItem`." #: ../../c-api/mapping.rst:14 msgid "" @@ -59,23 +59,23 @@ msgstr "" #: ../../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*`." +"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 "" "É o mesmo que :c:func:`PyObject_GetItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/mapping.rst:38 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*`." +"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 "" "É o mesmo que :c:func:`PyObject_SetItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/mapping.rst:45 msgid "This is an alias of :c:func:`PyObject_DelItem`." @@ -83,13 +83,13 @@ msgstr "Este é um apelido de :c:func:`PyObject_DelItem`." #: ../../c-api/mapping.rst:50 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*`." +"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 "" "É o mesmo que :c:func:`PyObject_DelItem`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/mapping.rst:57 msgid "" @@ -104,22 +104,22 @@ msgstr "" #: ../../c-api/mapping.rst:63 msgid "" "Exceptions which occur when this calls :meth:`~object.__getitem__` method " -"are silently ignored. For proper error handling, use :c:func:" -"`PyObject_GetItem()` instead." +"are silently ignored. For proper error handling, " +"use :c:func:`PyObject_GetItem()` instead." msgstr "" "As exceções que ocorrem quando esse método chama :meth:`~object.__getitem__` " -"são silenciosamente ignoradas. Para o tratamento adequado de erros, use :c:" -"func:`PyObject_GetItem()` em vez disso." +"são silenciosamente ignoradas. Para o tratamento adequado de erros, " +"use :c:func:`PyObject_GetItem()` em vez disso." #: ../../c-api/mapping.rst:70 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*`." +"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 "" "É o mesmo que :c:func:`PyMapping_HasKey`, mas *key* é especificada como uma " -"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de um :c:" -"expr:`PyObject*`." +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." #: ../../c-api/mapping.rst:76 msgid "" @@ -127,10 +127,10 @@ msgid "" "while creating the temporary :class:`str` object are silently ignored. For " "proper error handling, use :c:func:`PyMapping_GetItemString` instead." msgstr "" -"As exceções que ocorrem quando isso chama o método :meth:`~object." -"__getitem__` ou durante a criação do objeto temporário :class:`str` são " -"silenciosamente ignoradas. Para o tratamento adequado de erros, use :c:func:" -"`PyMapping_GetItemString` em vez disso." +"As exceções que ocorrem quando isso chama o " +"método :meth:`~object.__getitem__` ou durante a criação do objeto " +"temporário :class:`str` são silenciosamente ignoradas. Para o tratamento " +"adequado de erros, use :c:func:`PyMapping_GetItemString` em vez disso." #: ../../c-api/mapping.rst:84 msgid "" diff --git a/c-api/marshal.po b/c-api/marshal.po index e02042f8b..f0588fe39 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -50,10 +50,10 @@ msgstr "" msgid "" "The module supports two versions of the data format: version 0 is the " "historical version, version 1 shares interned strings in the file, and upon " -"unmarshalling. Version 2 uses a binary format for floating point numbers. " +"unmarshalling. Version 2 uses a binary format for floating-point numbers. " "``Py_MARSHAL_VERSION`` indicates the current file format (currently 2)." msgstr "" -"O módulo possui suporte a duas versões do formato de dados: a versão 0 é a " +"O módulo oferece suporte a duas versões do formato de dados: a versão 0 é a " "versão histórica, a versão 1 compartilha strings internas no arquivo e após " "a desserialização. A versão 2 usa um formato binário para números de ponto " "flutuante. ``Py_MARSHAL_VERSION`` indica o formato do arquivo atual " @@ -72,11 +72,11 @@ msgstr "" #: ../../c-api/marshal.rst:28 ../../c-api/marshal.rst:36 msgid "" -"This function can fail, in which case it sets the error indicator. Use :c:" -"func:`PyErr_Occurred` to check for that." +"This function can fail, in which case it sets the error indicator. " +"Use :c:func:`PyErr_Occurred` to check for that." msgstr "" -"Esta função pode falhar, caso em que define o indicador de erro. Use :c:func:" -"`PyErr_Occurred` para verificar isso." +"Esta função pode falhar, caso em que define o indicador de erro. " +"Use :c:func:`PyErr_Occurred` para verificar isso." #: ../../c-api/marshal.rst:33 msgid "" @@ -142,8 +142,8 @@ msgid "" "On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " "or :exc:`TypeError`) and returns ``NULL``." msgstr "" -"Em caso de erro, define a exceção apropriada (:exc:`EOFError`, :exc:" -"`ValueError` ou :exc:`TypeError`) e retorna ``NULL``." +"Em caso de erro, define a exceção apropriada " +"(:exc:`EOFError`, :exc:`ValueError` ou :exc:`TypeError`) e retorna ``NULL``." #: ../../c-api/marshal.rst:79 msgid "" diff --git a/c-api/memory.po b/c-api/memory.po index 9c9b1591c..35d2dd8c0 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -1,31 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Raphael Mendonça, 2021 -# Marco Rougeth , 2021 -# Welington Carlos , 2021 -# Claudio Rogerio Carvalho Filho , 2021 -# Rodrigo Cândido, 2022 -# Vitor Buxbaum Orlandi, 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-03 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Vitor Buxbaum Orlandi, 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -45,6 +39,12 @@ msgid "" "different components which deal with various dynamic storage management " "aspects, like sharing, segmentation, preallocation or caching." msgstr "" +"O gerenciamento de memória em Python envolve um heap privado contendo todos " +"os objetos e estruturas de dados Python. O gerenciamento desse heap privado " +"é garantido internamente pelo *gerenciador de memória do Python*. O " +"gerenciador de memória do Python possui diferentes componentes que lidam com " +"diversos aspectos dinâmicos do gerenciamento de armazenamento, como " +"compartilhamento, segmentação, pré-alocação ou cache." #: ../../c-api/memory.rst:25 msgid "" @@ -59,6 +59,18 @@ msgid "" "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 "" +"No nível mais baixo, um alocador de memória bruta garante que haja espaço " +"suficiente no heap privado para armazenar todos os dados relacionados ao " +"Python, interagindo com o gerenciador de memória do sistema operacional. " +"Além do alocador de memória bruta, vários alocadores específicos de objeto " +"operam no mesmo heap e implementam políticas distintas de gerenciamento de " +"memória, adaptadas às peculiaridades de cada tipo de objeto. Por exemplo, " +"objetos inteiros são gerenciados dentro do heap de forma diferente de " +"strings, tuplas ou dicionários, pois inteiros implicam diferentes requisitos " +"de armazenamento e compensações entre velocidade e espaço. O gerenciador de " +"memória do Python, portanto, delega parte do trabalho aos alocadores " +"específicos de objeto, mas garante que estes operem dentro dos limites do " +"heap privado." #: ../../c-api/memory.rst:36 msgid "" @@ -73,13 +85,27 @@ msgstr "" #: ../../c-api/memory.rst:49 msgid "" "To avoid memory corruption, extension writers should never try to operate on " -"Python objects with the functions exported by the C library: :c:func:" -"`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::" +"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:58 +msgid "" +"PyObject *res;\n" +"char *buf = (char *) malloc(BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"...Do some I/O operation involving buf...\n" +"res = PyBytes_FromString(buf);\n" +"free(buf); /* malloc'ed */\n" +"return res;" msgstr "" #: ../../c-api/memory.rst:68 @@ -136,8 +162,8 @@ msgid "" "allocation functions belonging to a given domain for only the purposes " "hinted by that domain (although this is the recommended practice). For " "example, one could use the memory returned by :c:func:`PyMem_RawMalloc` for " -"allocating Python objects or the memory returned by :c:func:" -"`PyObject_Malloc` for allocating memory for buffers." +"allocating Python objects or the memory returned " +"by :c:func:`PyObject_Malloc` for allocating memory for buffers." msgstr "" #: ../../c-api/memory.rst:112 @@ -237,9 +263,9 @@ msgstr "" #: ../../c-api/memory.rst:176 msgid "" -"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" -"func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:func:" -"`PyMem_RawCalloc`." +"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:180 @@ -251,9 +277,9 @@ msgstr "" #: ../../c-api/memory.rst:186 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " -"previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:" -"func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_RawFree(p)`` has been " -"called before, undefined behavior occurs." +"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:191 ../../c-api/memory.rst:261 @@ -274,8 +300,8 @@ msgstr "" #: ../../c-api/memory.rst:203 msgid "" -"The :ref:`default memory allocator ` uses the :" -"ref:`pymalloc memory allocator `." +"The :ref:`default memory allocator ` uses " +"the :ref:`pymalloc memory allocator `." msgstr "" #: ../../c-api/memory.rst:208 ../../c-api/memory.rst:320 @@ -312,8 +338,8 @@ msgstr "" #: ../../c-api/memory.rst:247 msgid "" -"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" -"func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." +"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:250 @@ -325,9 +351,9 @@ msgstr "" #: ../../c-api/memory.rst:256 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " -"previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:" -"`PyMem_Calloc`. Otherwise, or if ``PyMem_Free(p)`` has been called before, " -"undefined behavior occurs." +"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:263 @@ -368,6 +394,11 @@ msgid "" "above. However, note that their use does not preserve binary compatibility " "across Python versions and is therefore deprecated in extension modules." msgstr "" +"Além disso, os seguintes conjuntos de macros são fornecidos para chamar o " +"alocador de memória do Python diretamente, sem envolver as funções da API C " +"listadas acima. No entanto, observe que seu uso não preserva a " +"compatibilidade binária entre as versões do Python e, portanto, está " +"descontinuado em módulos de extensão." #: ../../c-api/memory.rst:294 msgid "``PyMem_MALLOC(size)``" @@ -383,7 +414,7 @@ msgstr "``PyMem_REALLOC(ptr, size)``" #: ../../c-api/memory.rst:297 msgid "``PyMem_RESIZE(ptr, type, size)``" -msgstr "" +msgstr "``PyMem_RESIZE(ptr, type, size)``" #: ../../c-api/memory.rst:298 msgid "``PyMem_FREE(ptr)``" @@ -407,8 +438,8 @@ msgstr "" #: ../../c-api/memory.rst:315 msgid "" -"The :ref:`default object allocator ` uses the :" -"ref:`pymalloc memory allocator `." +"The :ref:`default object allocator ` uses " +"the :ref:`pymalloc memory allocator `." msgstr "" #: ../../c-api/memory.rst:328 @@ -434,9 +465,9 @@ msgstr "" #: ../../c-api/memory.rst:355 msgid "" -"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" -"func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:" -"`PyObject_Calloc`." +"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:358 @@ -448,9 +479,9 @@ msgstr "" #: ../../c-api/memory.rst:364 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " -"previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:" -"func:`PyObject_Calloc`. Otherwise, or if ``PyObject_Free(p)`` has been " -"called before, undefined behavior occurs." +"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:375 @@ -531,7 +562,7 @@ msgstr "``\"malloc_debug\"``" #: ../../c-api/memory.rst:388 msgid "Legend:" -msgstr "" +msgstr "Legenda:" #: ../../c-api/memory.rst:390 msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable." @@ -539,8 +570,9 @@ msgstr "" #: ../../c-api/memory.rst:391 msgid "" -"``malloc``: system allocators from the standard C library, C functions: :c:" -"func:`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`." +"``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:393 @@ -617,8 +649,8 @@ msgstr "" #: ../../c-api/memory.rst:425 msgid "" -"The :c:type:`!PyMemAllocator` structure was renamed to :c:type:" -"`PyMemAllocatorEx` and a new ``calloc`` field was added." +"The :c:type:`!PyMemAllocator` structure was renamed " +"to :c:type:`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" #: ../../c-api/memory.rst:432 @@ -725,20 +757,20 @@ msgstr "" #: ../../c-api/memory.rst:494 msgid "" -"It can be called after :c:func:`Py_PreInitialize` and before :c:func:" -"`Py_InitializeFromConfig` to install a custom memory allocator. There are no " -"restrictions over the installed allocator other than the ones imposed by the " -"domain (for instance, the Raw Domain allows the allocator to be called " -"without the GIL held). See :ref:`the section on allocator domains ` for more information." +"It can be called after :c:func:`Py_PreInitialize` and " +"before :c:func:`Py_InitializeFromConfig` to install a custom memory " +"allocator. There are no restrictions over the installed allocator other than " +"the ones imposed by the domain (for instance, the Raw Domain allows the " +"allocator to be called without the GIL held). See :ref:`the section on " +"allocator domains ` for more information." msgstr "" #: ../../c-api/memory.rst:502 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**." +"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:507 @@ -757,8 +789,8 @@ msgstr "" #: ../../c-api/memory.rst:522 msgid "" -"When :ref:`Python is built in debug mode `, the :c:func:" -"`PyMem_SetupDebugHooks` function is called at the :ref:`Python " +"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 "" @@ -926,10 +958,11 @@ msgstr "" #: ../../c-api/memory.rst:607 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 the GIL is held when functions of :c:macro:" -"`PYMEM_DOMAIN_OBJ` and :c:macro:`PYMEM_DOMAIN_MEM` domains are called." +"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 the GIL is held when functions " +"of :c:macro:`PYMEM_DOMAIN_OBJ` and :c:macro:`PYMEM_DOMAIN_MEM` domains are " +"called." msgstr "" #: ../../c-api/memory.rst:615 @@ -949,15 +982,15 @@ 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. It falls back to :c:func:`PyMem_RawMalloc` and :c:func:" -"`PyMem_RawRealloc` for allocations larger than 512 bytes." +"on 64-bit platforms. It falls back to :c:func:`PyMem_RawMalloc` " +"and :c:func:`PyMem_RawRealloc` for allocations larger than 512 bytes." msgstr "" #: ../../c-api/memory.rst:633 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." +"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:637 @@ -979,8 +1012,9 @@ msgstr ":c:func:`malloc` e :c:func:`free` do contrário." #: ../../c-api/memory.rst:643 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``)." +"without-pymalloc` option. It can also be disabled at runtime using " +"the :envvar:`PYTHONMALLOC` environment variable (ex: " +"``PYTHONMALLOC=malloc``)." msgstr "" #: ../../c-api/memory.rst:648 @@ -1003,7 +1037,7 @@ msgstr "" #: ../../c-api/memory.rst:664 msgid "``void free(void *ctx, void *ptr, size_t size)``" -msgstr "" +msgstr "``void free(void *ctx, void *ptr, size_t size)``" #: ../../c-api/memory.rst:664 msgid "free an arena" @@ -1056,10 +1090,36 @@ msgid "" "set::" msgstr "" +#: ../../c-api/memory.rst:706 +msgid "" +"PyObject *res;\n" +"char *buf = (char *) PyMem_Malloc(BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"/* ...Do some I/O operation involving buf... */\n" +"res = PyBytes_FromString(buf);\n" +"PyMem_Free(buf); /* allocated with PyMem_Malloc */\n" +"return res;" +msgstr "" + #: ../../c-api/memory.rst:716 msgid "The same code using the type-oriented function set::" msgstr "" +#: ../../c-api/memory.rst:718 +msgid "" +"PyObject *res;\n" +"char *buf = PyMem_New(char, BUFSIZ); /* for I/O */\n" +"\n" +"if (buf == NULL)\n" +" return PyErr_NoMemory();\n" +"/* ...Do some I/O operation involving buf... */\n" +"res = PyBytes_FromString(buf);\n" +"PyMem_Del(buf); /* allocated with PyMem_New */\n" +"return res;" +msgstr "" + #: ../../c-api/memory.rst:728 msgid "" "Note that in the two examples above, the buffer is always manipulated via " @@ -1070,11 +1130,23 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" +#: ../../c-api/memory.rst:735 +msgid "" +"char *buf1 = PyMem_New(char, BUFSIZ);\n" +"char *buf2 = (char *) malloc(BUFSIZ);\n" +"char *buf3 = (char *) PyMem_Malloc(BUFSIZ);\n" +"...\n" +"PyMem_Del(buf3); /* Wrong -- should be PyMem_Free() */\n" +"free(buf2); /* Right -- allocated via malloc() */\n" +"free(buf1); /* Fatal -- should be PyMem_Del() */" +msgstr "" + #: ../../c-api/memory.rst:743 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_Del`." +"Python heap, objects in Python are allocated and released " +"with :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar` " +"and :c:func:`PyObject_Del`." msgstr "" #: ../../c-api/memory.rst:747 diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 20254053a..7898b0583 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-19 14:13+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -94,8 +93,8 @@ msgstr "" msgid "" "*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" -"*buffertype* pode ser um entre :c:macro:`PyBUF_READ` ou :c:macro:" -"`PyBUF_WRITE`." +"*buffertype* pode ser um entre :c:macro:`PyBUF_READ` " +"ou :c:macro:`PyBUF_WRITE`." #: ../../c-api/memoryview.rst:60 msgid "" @@ -120,14 +119,16 @@ msgstr "" #: ../../c-api/memoryview.rst:73 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." +"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 "" "Retorna um ponteiro para o objeto de exportação no qual a memória é baseada " -"ou ``NULL`` se a memória tiver sido criada por uma das funções :c:func:" -"`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. *mview* " -"**deve** ser uma instância de memoryview." +"ou ``NULL`` se a memória tiver sido criada por uma das " +"funções :c:func:`PyMemoryView_FromMemory` " +"ou :c:func:`PyMemoryView_FromBuffer`. *mview* **deve** ser uma instância de " +"memoryview." #: ../../c-api/memoryview.rst:5 msgid "object" diff --git a/c-api/method.po b/c-api/method.po index 645310961..a98dc40c2 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -1,28 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Adorilson Bezerra , 2021 -# Cássio Nomura , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -36,8 +33,8 @@ msgid "" "to bind a :c:type:`PyCFunction` to a class object. It replaces the former " "call ``PyMethod_New(func, NULL, class)``." msgstr "" -"Um método de instância é um wrapper para um :c:type:`PyCFunction` e a nova " -"maneira de vincular um :c:type:`PyCFunction` a um objeto de classe. Ele " +"Um método de instância é um invólucro para um :c:type:`PyCFunction` e a nova " +"maneira de vincular um :c:type:`PyCFunction` a um objeto classe. Ele " "substitui a chamada anterior ``PyMethod_New(func, NULL, class)``." #: ../../c-api/method.rst:17 @@ -50,13 +47,13 @@ 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." +"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 "" -"Retorna verdadeiro se *o* é um objeto de método de instância (tem tipo :c:" -"data:`PyInstanceMethod_Type`). O parâmetro não deve ser ``NULL``. Esta " -"função sempre tem sucesso." +"Retorna verdadeiro se *o* é um objeto de método de instância (tem " +"tipo :c:data:`PyInstanceMethod_Type`). O parâmetro não deve ser ``NULL``. " +"Esta função sempre tem sucesso." #: ../../c-api/method.rst:30 msgid "" @@ -107,9 +104,9 @@ 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 "" -"Retorna verdadeiro se *o* é um objeto de método (tem tipo :c:data:" -"`PyMethod_Type`). O parâmetro não deve ser ``NULL``. Esta função sempre tem " -"sucesso." +"Retorna verdadeiro se *o* é um objeto de método (tem " +"tipo :c:data:`PyMethod_Type`). O parâmetro não deve ser ``NULL``. Esta " +"função sempre tem sucesso." #: ../../c-api/method.rst:73 msgid "" diff --git a/c-api/module.po b/c-api/module.po index f2012e525..109df41ce 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -1,29 +1,26 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# i17obot , 2021 -# Rodrigo Cândido, 2022 -# Welliton Malta , 2023 -# Marco Rougeth , 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 +# willian ohara, 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-11 20:24+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: willian ohara, 2026\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -49,31 +46,42 @@ msgstr "" #: ../../c-api/module.rst:27 msgid "" -"Return true if *p* is a module object, but not a subtype of :c:data:" -"`PyModule_Type`. This function always succeeds." +"Return true if *p* is a module object, but not a subtype " +"of :c:data:`PyModule_Type`. This function always succeeds." msgstr "" -"Retorna true se *p* for um objeto de módulo, mas não um subtipo de :c:data:" -"`PyModule_Type`. Essa função é sempre bem-sucedida." +"Retorna true se *p* for um objeto de módulo, mas não um subtipo " +"de :c:data:`PyModule_Type`. Essa função é sempre bem-sucedida." #: ../../c-api/module.rst:40 msgid "" -"Return a new module object with the :attr:`__name__` attribute set to " -"*name*. The module's :attr:`__name__`, :attr:`__doc__`, :attr:`__package__`, " -"and :attr:`__loader__` attributes are filled in (all but :attr:`__name__` " -"are set to ``None``); the caller is responsible for providing a :attr:" -"`__file__` attribute." +"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 "" -"Retorna um novo objeto de módulo com o atributo :attr:`__name__` definido " -"como *name*. Os atributos de módulo :attr:`__name__`, :attr:`__doc__`, :attr:" -"`__package__` e :attr:`__loader__` são preenchidos (todos exceto :attr:" -"`__name__` são definidos como ``None``); O chamador é responsásvel por " -"providenciar um atributo :attr:`__file__`." +"Retorna um novo objeto de módulo com :attr:`module.__name__` definido como " +"*name*. Os atributos :attr:`!" +"__name__`, :attr:`~module.__doc__`, :attr:`~module.__package__` " +"e :attr:`~module.__loader__` do módulo são preenchidos (todos, " +"exceto :attr:`!__name__`, são definidos como ``None``). O chamador é " +"responsável por definir um atributo :attr:`~module.__file__`." + +#: ../../c-api/module.rst:46 ../../c-api/module.rst:272 +#: ../../c-api/module.rst:447 +msgid "Return ``NULL`` with an exception set on error." +msgstr "Retorna ``NULL`` com uma exceção definida em caso de erro." -#: ../../c-api/module.rst:48 -msgid ":attr:`__package__` and :attr:`__loader__` are set to ``None``." -msgstr ":attr:`__package__` e :attr:`__loader__` são definidos como ``None``." +#: ../../c-api/module.rst:50 +msgid "" +":attr:`~module.__package__` and :attr:`~module.__loader__` are now set to " +"``None``." +msgstr "" +":attr:`~module.__package__` e :attr:`~module.__loader__` agora estão " +"definidos como ``None``." -#: ../../c-api/module.rst:54 +#: ../../c-api/module.rst:57 msgid "" "Similar to :c:func:`PyModule_NewObject`, but the name is a UTF-8 encoded " "string instead of a Unicode object." @@ -81,29 +89,39 @@ msgstr "" "Semelhante a :c:func:`PyModule_NewObject`, mas o nome é uma string " "codificada em UTF-8 em vez de um objeto Unicode." -#: ../../c-api/module.rst:62 +#: ../../c-api/module.rst:65 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 "" +"Retorna o objeto dicionário que implementa o espaço de nomes de *module*; " +"este objeto é o mesmo que o atributo :attr:`~object.__dict__` do objeto de " +"módulo. Se *module* não for um objeto de módulo (ou um subtipo de um objeto " +"de módulo), :exc:`SystemError` é levantada e ``NULL`` é retornado." -#: ../../c-api/module.rst:67 +#: ../../c-api/module.rst:70 msgid "" "It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` " -"functions rather than directly manipulate a module's :attr:`~object." -"__dict__`." +"functions rather than directly manipulate a " +"module's :attr:`~object.__dict__`." msgstr "" +"É recomendado que as extensões usem outras funções ``PyModule_*`` e " +"``PyObject_*`` em vez de manipular diretamente o :attr:`~object.__dict__` de " +"um módulo." -#: ../../c-api/module.rst:78 +#: ../../c-api/module.rst:81 msgid "" -"Return *module*'s :attr:`__name__` value. If the module does not provide " -"one, or if it is not a string, :exc:`SystemError` is raised and ``NULL`` is " -"returned." +"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 "" +"Retorna o valor :attr:`~module.__name__` do *module*. Se o módulo não " +"fornecer um, ou se não for uma string, :exc:`SystemError` é levantada e " +"``NULL`` é retornado." -#: ../../c-api/module.rst:86 +#: ../../c-api/module.rst:90 msgid "" "Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " "``'utf-8'``." @@ -111,17 +129,17 @@ msgstr "" "Semelhante a :c:func:`PyModule_GetNameObject` mas retorna o nome codificado " "em ``'utf-8'``" -#: ../../c-api/module.rst:91 +#: ../../c-api/module.rst:95 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:member:" -"`PyModuleDef.m_size`." +"memory allocated at module creation time, or ``NULL``. " +"See :c:member:`PyModuleDef.m_size`." msgstr "" "Retorna o \"estado\" do módulo, ou seja, um ponteiro para o bloco de memória " -"alocado no momento de criação do módulo, ou ``NULL``. Ver :c:member:" -"`PyModuleDef.m_size`." +"alocado no momento de criação do módulo, ou ``NULL``. " +"Ver :c:member:`PyModuleDef.m_size`." -#: ../../c-api/module.rst:98 +#: ../../c-api/module.rst:102 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." @@ -129,19 +147,19 @@ msgstr "" "Retorna um ponteiro para a estrutura :c:type:`PyModuleDef` da qual o módulo " "foi criado, ou ``NULL`` se o módulo não foi criado de uma definição." -#: ../../c-api/module.rst:108 +#: ../../c-api/module.rst:112 msgid "" -"Return the name of the file from which *module* was loaded using *module*'s :" -"attr:`__file__` attribute. If this is not defined, or if it is not a " -"unicode string, raise :exc:`SystemError` and return ``NULL``; otherwise " -"return a reference to a Unicode object." +"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 "" -"Retorna o nome do arquivo do qual o *módulo* foi carregado usando o " -"atributo :attr:`__file__` do *módulo*. Se não estiver definido, ou se não " -"for uma string unicode, levanta :exc:`SystemError` e retorna ``NULL``; Caso " -"contrário, retorna uma referência a um objeto Unicode." +"Retorna o nome do arquivo do qual o *module* foi carregado usando o " +"atributo :attr:`~module.__file__` do *module*. Se não estiver definido, ou " +"se não for uma string unicode, levanta :exc:`SystemError` e retorna " +"``NULL``; Caso contrário, retorna uma referência a um objeto Unicode." -#: ../../c-api/module.rst:118 +#: ../../c-api/module.rst:122 msgid "" "Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " "encoded to 'utf-8'." @@ -149,17 +167,19 @@ msgstr "" "Semelhante a :c:func:`PyModule_GetFilenameObject` mas retorna o nome do " "arquivo codificado em 'utf-8'." -#: ../../c-api/module.rst:121 +#: ../../c-api/module.rst:125 msgid "" ":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " "unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." msgstr "" +":c:func:`PyModule_GetFilename`: levanta :exc:`UnicodeEncodeError` quando há " +"nomes de arquivos não codificáveis, use :c:func:`PyModule_GetFilenameObject`." -#: ../../c-api/module.rst:129 +#: ../../c-api/module.rst:133 msgid "Initializing C modules" msgstr "Inicializando módulos C" -#: ../../c-api/module.rst:131 +#: ../../c-api/module.rst:135 msgid "" "Modules objects are usually created from extension modules (shared libraries " "which export an initialization function), or compiled-in modules (where the " @@ -168,22 +188,23 @@ msgid "" msgstr "" "Objetos de módulos são geralmente criados a partir de módulos de extensão " "(bibliotecas compartilhadas que exportam uma função de inicialização), ou " -"módulos compilados (onde a função de inicialização é adicionada usando :c:" -"func:`PyImport_AppendInittab`). Ver :ref:`building` ou :ref:`extending-with-" -"embedding` para mais detalhes." +"módulos compilados (onde a função de inicialização é adicionada " +"usando :c:func:`PyImport_AppendInittab`). Ver :ref:`building` " +"ou :ref:`extending-with-embedding` para mais detalhes." -#: ../../c-api/module.rst:136 +#: ../../c-api/module.rst:140 msgid "" -"The initialization function can either pass a module definition instance to :" -"c:func:`PyModule_Create`, and return the resulting module object, or request " -"\"multi-phase initialization\" by returning the definition struct itself." +"The initialization function can either pass a module definition instance " +"to :c:func:`PyModule_Create`, and return the resulting module object, or " +"request \"multi-phase initialization\" by returning the definition struct " +"itself." msgstr "" "A função de inicialização pode passar uma instância de definição de módulo " "para :c:func:`PyModule_Create` e retornar o objeto de módulo resultante ou " "solicitar \"inicialização multifásica\" retornando a própria estrutura de " "definição." -#: ../../c-api/module.rst:142 +#: ../../c-api/module.rst:146 msgid "" "The module definition struct, which holds all information needed to create a " "module object. There is usually only one statically initialized variable of " @@ -193,43 +214,52 @@ msgstr "" "necessária para criar um objeto de módulo. Geralmente, há apenas uma " "variável inicializada estaticamente desse tipo para cada módulo." -#: ../../c-api/module.rst:148 +#: ../../c-api/module.rst:152 msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." -msgstr "" +msgstr "Sempre inicializa este membro para :c:macro:`PyModuleDef_HEAD_INIT`." -#: ../../c-api/module.rst:152 +#: ../../c-api/module.rst:156 msgid "Name for the new module." msgstr "Nome para o novo módulo." -#: ../../c-api/module.rst:156 +#: ../../c-api/module.rst:160 msgid "" -"Docstring for the module; usually a docstring variable created with :c:macro:" -"`PyDoc_STRVAR` is used." +"Docstring for the module; usually a docstring variable created " +"with :c:macro:`PyDoc_STRVAR` is used." msgstr "" -"Docstring para o módulo; geralmente uma variável docstring criada com :c:" -"macro:`PyDoc_STRVAR` é usada." +"Docstring para o módulo; geralmente uma variável docstring criada " +"com :c:macro:`PyDoc_STRVAR` é usada." -#: ../../c-api/module.rst:161 +#: ../../c-api/module.rst:165 msgid "" "Module state may be kept in a per-module memory area that can be retrieved " "with :c:func:`PyModule_GetState`, rather than in static globals. This makes " "modules safe for use in multiple sub-interpreters." msgstr "" +"O estado do módulo pode ser mantido em uma área de memória por módulo que " +"pode ser recuperada com :c:func:`PyModule_GetState`, em vez de em globais " +"estáticos. Isso torna os módulos seguros para uso em vários " +"subinterpretadores." -#: ../../c-api/module.rst:165 +#: ../../c-api/module.rst:169 msgid "" "This memory area is allocated based on *m_size* on module creation, and " -"freed when the module object is deallocated, after the :c:member:" -"`~PyModuleDef.m_free` function has been called, if present." +"freed when the module object is deallocated, after " +"the :c:member:`~PyModuleDef.m_free` function has been called, if present." msgstr "" +"Esta área de memória é alocada com base em *m_size* na criação do módulo e " +"liberada quando o objeto do módulo é desalocado, após a " +"função :c:member:`~PyModuleDef.m_free` ter sido chamada, se presente." -#: ../../c-api/module.rst:169 +#: ../../c-api/module.rst:173 msgid "" "Setting ``m_size`` to ``-1`` means that the module does not support sub-" "interpreters, because it has global state." msgstr "" +"Definir ``m_size`` como ``-1`` significa que o módulo não oferece suporte a " +"subinterpretadores, porque ele tem estado global." -#: ../../c-api/module.rst:172 +#: ../../c-api/module.rst:176 msgid "" "Setting it to a non-negative value means that the module can be re-" "initialized and specifies the additional amount of memory it requires for " @@ -241,58 +271,77 @@ msgstr "" "para seu estado. ``m_size`` não negativo é necessário para inicialização " "multifásica." -#: ../../c-api/module.rst:177 +#: ../../c-api/module.rst:181 msgid "See :PEP:`3121` for more details." msgstr "Ver :PEP:`3121` para mais detalhes." -#: ../../c-api/module.rst:181 +#: ../../c-api/module.rst:185 msgid "" -"A pointer to a table of module-level functions, described by :c:type:" -"`PyMethodDef` values. Can be ``NULL`` if no functions are present." +"A pointer to a table of module-level functions, described " +"by :c:type:`PyMethodDef` values. Can be ``NULL`` if no functions are " +"present." msgstr "" +"Um ponteiro para uma tabela de funções de nível de módulo, descritas por " +"valores :c:type:`PyMethodDef`. Pode ser ``NULL`` se nenhuma função estiver " +"presente." -#: ../../c-api/module.rst:186 +#: ../../c-api/module.rst:190 msgid "" "An array of slot definitions for multi-phase initialization, terminated by a " "``{0, NULL}`` entry. When using single-phase initialization, *m_slots* must " "be ``NULL``." msgstr "" +"Uma matriz de definições de slot para inicialização multifásica, terminada " +"por uma entrada ``{0, NULL}``. Ao usar inicialização monofásica, *m_slots* " +"deve ser ``NULL``." -#: ../../c-api/module.rst:192 +#: ../../c-api/module.rst:196 msgid "" "Prior to version 3.5, this member was always set to ``NULL``, and was " "defined as:" msgstr "" +"Antes da versão 3.5, esse membro era sempre definido como ``NULL`` e era " +"definido como:" -#: ../../c-api/module.rst:199 +#: ../../c-api/module.rst:203 msgid "" "A traversal function to call during GC traversal of the module object, or " "``NULL`` if not needed." msgstr "" +"Uma função de travessia para chamar durante a travessia do GC do objeto do " +"módulo, ou ``NULL`` se não for necessário." -#: ../../c-api/module.rst:202 ../../c-api/module.rst:217 -#: ../../c-api/module.rst:238 +#: ../../c-api/module.rst:206 ../../c-api/module.rst:221 +#: ../../c-api/module.rst:242 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 :c:member:`~PyModuleDef.m_size` is " -"greater than 0 and the module state (as returned by :c:func:" -"`PyModule_GetState`) is ``NULL``." +"greater than 0 and the module state (as returned " +"by :c:func:`PyModule_GetState`) is ``NULL``." msgstr "" +"Esta função não é mais chamada se o estado do módulo foi solicitado, mas " +"ainda não está alocado. Este é o caso imediatamente após o módulo ser criado " +"e antes de o módulo ser executado (função :c:data:`Py_mod_exec`). Mais " +"precisamente, esta função não é chamada se :c:member:`~PyModuleDef.m_size` " +"for maior que 0 e o estado do módulo (como retornado " +"por :c:func:`PyModule_GetState`) for ``NULL``." -#: ../../c-api/module.rst:209 ../../c-api/module.rst:230 -#: ../../c-api/module.rst:245 +#: ../../c-api/module.rst:213 ../../c-api/module.rst:234 +#: ../../c-api/module.rst:249 msgid "No longer called before the module state is allocated." msgstr "Não é mais chamado antes que o estado do módulo seja alocado." -#: ../../c-api/module.rst:214 +#: ../../c-api/module.rst:218 msgid "" "A clear function to call during GC clearing of the module object, or " "``NULL`` if not needed." msgstr "" +"Uma função de limpeza para chamar durante a limpeza do GC do objeto do " +"módulo, ou ``NULL`` se não for necessário." -#: ../../c-api/module.rst:224 +#: ../../c-api/module.rst:228 msgid "" "Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " "before a module is deallocated. For example, when reference counting is " @@ -300,8 +349,13 @@ msgid "" "collector is not involved and :c:member:`~PyModuleDef.m_free` is called " "directly." msgstr "" +"Assim como :c:member:`PyTypeObject.tp_clear`, esta função não é *sempre* " +"chamada antes de um módulo ser desalocado. Por exemplo, quando a contagem de " +"referências é suficiente para determinar que um objeto não é mais usado, o " +"coletor de lixo cíclico não é envolvido e :c:member:`~PyModuleDef.m_free` é " +"chamado diretamente." -#: ../../c-api/module.rst:235 +#: ../../c-api/module.rst:239 msgid "" "A function to call during deallocation of the module object, or ``NULL`` if " "not needed." @@ -309,11 +363,11 @@ msgstr "" "Uma função para ser chamada durante a desalocação do objeto do módulo, ou " "``NULL`` se não for necessário." -#: ../../c-api/module.rst:249 +#: ../../c-api/module.rst:253 msgid "Single-phase initialization" msgstr "inicialização de fase única" -#: ../../c-api/module.rst:251 +#: ../../c-api/module.rst:255 msgid "" "The module initialization function may create and return the module object " "directly. This is referred to as \"single-phase initialization\", and uses " @@ -323,40 +377,43 @@ msgstr "" "diretamente. Isso é chamado de \"inicialização de fase única\" e usa uma das " "duas funções de criação de módulo a seguir:" -#: ../../c-api/module.rst:257 +#: ../../c-api/module.rst:261 msgid "" "Create a new module object, given the definition in *def*. This behaves " -"like :c:func:`PyModule_Create2` with *module_api_version* set to :c:macro:" -"`PYTHON_API_VERSION`." +"like :c:func:`PyModule_Create2` with *module_api_version* set " +"to :c:macro:`PYTHON_API_VERSION`." msgstr "" +"Cria um novo objeto de módulo, dada a definição em *def*. Isso se comporta " +"como :c:func:`PyModule_Create2` com *module_api_version* definido " +"como :c:macro:`PYTHON_API_VERSION`" -#: ../../c-api/module.rst:264 +#: ../../c-api/module.rst:268 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:270 +#: ../../c-api/module.rst:276 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 "" -"A maioria dos usos dessa função deve ser feita com :c:func:" -"`PyModule_Create`; use-o apenas se tiver certeza de que precisa." +"A maioria dos usos dessa função deve ser feita " +"com :c:func:`PyModule_Create`; use-o apenas se tiver certeza de que precisa." -#: ../../c-api/module.rst:273 +#: ../../c-api/module.rst:279 msgid "" "Before it is returned from in the initialization function, the resulting " -"module object is typically populated using functions like :c:func:" -"`PyModule_AddObjectRef`." +"module object is typically populated using functions " +"like :c:func:`PyModule_AddObjectRef`." msgstr "" -#: ../../c-api/module.rst:279 +#: ../../c-api/module.rst:285 msgid "Multi-phase initialization" msgstr "Inicialização multifásica" -#: ../../c-api/module.rst:281 +#: ../../c-api/module.rst:287 msgid "" "An alternate way to specify extensions is to request \"multi-phase " "initialization\". Extension modules created this way behave more like Python " @@ -366,7 +423,7 @@ msgid "" "__init__` methods of classes." msgstr "" -#: ../../c-api/module.rst:288 +#: ../../c-api/module.rst:294 msgid "" "Unlike modules created using single-phase initialization, these modules are " "not singletons: if the *sys.modules* entry is removed and the module is re-" @@ -374,27 +431,28 @@ msgid "" "normal garbage collection -- as with Python modules. By default, multiple " "modules created from the same definition should be independent: changes to " "one should not affect the others. This means that all state should be " -"specific to the module object (using e.g. using :c:func:" -"`PyModule_GetState`), or its contents (such as the module's :attr:`~object." -"__dict__` or individual classes created with :c:func:`PyType_FromSpec`)." +"specific to the module object (using e.g. " +"using :c:func:`PyModule_GetState`), or its contents (such as the " +"module's :attr:`~object.__dict__` or individual classes created " +"with :c:func:`PyType_FromSpec`)." msgstr "" -#: ../../c-api/module.rst:298 +#: ../../c-api/module.rst:304 msgid "" "All modules created using multi-phase initialization are expected to " "support :ref:`sub-interpreters `. Making sure " "multiple modules are independent is typically enough to achieve this." msgstr "" -#: ../../c-api/module.rst:302 +#: ../../c-api/module.rst:308 msgid "" "To request multi-phase initialization, the initialization function " -"(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :" -"c:member:`~PyModuleDef.m_slots`. Before it is returned, the ``PyModuleDef`` " -"instance must be initialized with the following function:" +"(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-" +"empty :c:member:`~PyModuleDef.m_slots`. Before it is returned, the " +"``PyModuleDef`` instance must be initialized with the following function:" msgstr "" -#: ../../c-api/module.rst:309 +#: ../../c-api/module.rst:315 msgid "" "Ensures a module definition is a properly initialized Python object that " "correctly reports its type and reference count." @@ -402,54 +460,54 @@ msgstr "" "Garante que uma definição de módulo é um objeto Python devidamente " "inicializado que reporta corretamente seu tipo e contagem de referências." -#: ../../c-api/module.rst:312 +#: ../../c-api/module.rst:318 msgid "Returns *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." msgstr "" -#: ../../c-api/module.rst:316 +#: ../../c-api/module.rst:322 msgid "" "The *m_slots* member of the module definition must point to an array of " "``PyModuleDef_Slot`` structures:" msgstr "" -#: ../../c-api/module.rst:323 +#: ../../c-api/module.rst:329 msgid "A slot ID, chosen from the available values explained below." msgstr "" "Um ID de lot, escolhido a partir dos valores disponíveis explicados abaixo." -#: ../../c-api/module.rst:327 +#: ../../c-api/module.rst:333 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "Valor do slot, cujo significado depende do ID do slot." -#: ../../c-api/module.rst:331 +#: ../../c-api/module.rst:337 msgid "The *m_slots* array must be terminated by a slot with id 0." msgstr "" -#: ../../c-api/module.rst:333 +#: ../../c-api/module.rst:339 msgid "The available slot types are:" msgstr "Os tipos de slot disponíveis são:" -#: ../../c-api/module.rst:337 +#: ../../c-api/module.rst:343 msgid "" "Specifies a function that is called to create the module object itself. The " "*value* pointer of this slot must point to a function of the signature:" msgstr "" -#: ../../c-api/module.rst:343 +#: ../../c-api/module.rst:350 msgid "" "The function receives a :py:class:`~importlib.machinery.ModuleSpec` " "instance, as defined in :PEP:`451`, and the module definition. It should " "return a new module object, or set an error and return ``NULL``." msgstr "" -#: ../../c-api/module.rst:348 +#: ../../c-api/module.rst:355 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:352 +#: ../../c-api/module.rst:359 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." @@ -457,7 +515,7 @@ msgstr "" "Múltiplos slots ``Py_mod_create`` podem não estar especificados em uma " "definição de módulo." -#: ../../c-api/module.rst:355 +#: ../../c-api/module.rst:362 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 " @@ -466,17 +524,17 @@ msgid "" "through symlinks, all while sharing a single module definition." msgstr "" -#: ../../c-api/module.rst:361 +#: ../../c-api/module.rst:368 msgid "" -"There is no requirement for the returned object to be an instance of :c:type:" -"`PyModule_Type`. Any type can be used, as long as it supports setting and " -"getting import-related attributes. However, only ``PyModule_Type`` instances " -"may be returned if the ``PyModuleDef`` has non-``NULL`` ``m_traverse``, " -"``m_clear``, ``m_free``; non-zero ``m_size``; or slots other than " -"``Py_mod_create``." +"There is no requirement for the returned object to be an instance " +"of :c:type:`PyModule_Type`. Any type can be used, as long as it supports " +"setting and getting import-related attributes. However, only " +"``PyModule_Type`` instances may be returned if the ``PyModuleDef`` has non-" +"``NULL`` ``m_traverse``, ``m_clear``, ``m_free``; non-zero ``m_size``; or " +"slots other than ``Py_mod_create``." msgstr "" -#: ../../c-api/module.rst:370 +#: ../../c-api/module.rst:377 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -484,7 +542,7 @@ msgid "" "function is:" msgstr "" -#: ../../c-api/module.rst:378 +#: ../../c-api/module.rst:386 msgid "" "If multiple ``Py_mod_exec`` slots are specified, they are processed in the " "order they appear in the *m_slots* array." @@ -492,54 +550,54 @@ msgstr "" "Se vários slots ``Py_mod_exec`` forem especificados, eles serão processados " "na ordem em que aparecem no vetor *m_slots*." -#: ../../c-api/module.rst:383 +#: ../../c-api/module.rst:391 msgid "Specifies one of the following values:" msgstr "" -#: ../../c-api/module.rst:389 +#: ../../c-api/module.rst:397 msgid "The module does not support being imported in subinterpreters." msgstr "" -#: ../../c-api/module.rst:393 +#: ../../c-api/module.rst:401 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:399 +#: ../../c-api/module.rst:407 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:403 +#: ../../c-api/module.rst:411 msgid "" "This slot determines whether or not importing this module in a " "subinterpreter will fail." msgstr "" -#: ../../c-api/module.rst:406 +#: ../../c-api/module.rst:414 msgid "" "Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " "module definition." msgstr "" -#: ../../c-api/module.rst:409 +#: ../../c-api/module.rst:417 msgid "" "If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " -"defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED``." +"defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." msgstr "" -#: ../../c-api/module.rst:414 +#: ../../c-api/module.rst:422 msgid "See :PEP:`489` for more details on multi-phase initialization." msgstr "" "Ver :PEP:`489` para obter mais detalhes sobre a inicialização multifásica." -#: ../../c-api/module.rst:417 +#: ../../c-api/module.rst:425 msgid "Low-level module creation functions" msgstr "Funções de criação de módulo de baixo nível" -#: ../../c-api/module.rst:419 +#: ../../c-api/module.rst:427 msgid "" "The following functions are called under the hood when using multi-phase " "initialization. They can be used directly, for example when creating module " @@ -547,14 +605,14 @@ msgid "" "``PyModule_ExecDef`` must be called to fully initialize a module." msgstr "" -#: ../../c-api/module.rst:426 +#: ../../c-api/module.rst:434 msgid "" "Create a new module object, given the definition in *def* and the ModuleSpec " "*spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` with " "*module_api_version* set to :c:macro:`PYTHON_API_VERSION`." msgstr "" -#: ../../c-api/module.rst:434 +#: ../../c-api/module.rst:442 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 " @@ -562,24 +620,24 @@ msgid "" "emitted." msgstr "" -#: ../../c-api/module.rst:441 +#: ../../c-api/module.rst:451 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:448 +#: ../../c-api/module.rst:458 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" -#: ../../c-api/module.rst:454 +#: ../../c-api/module.rst:464 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef``, using either " "``PyModule_Create`` or ``PyModule_FromDefAndSpec``." msgstr "" -#: ../../c-api/module.rst:463 +#: ../../c-api/module.rst:473 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " @@ -591,11 +649,11 @@ msgid "" "``PyModule_FromDefAndSpec``." msgstr "" -#: ../../c-api/module.rst:475 +#: ../../c-api/module.rst:485 msgid "Support functions" msgstr "" -#: ../../c-api/module.rst:477 +#: ../../c-api/module.rst:487 msgid "" "The module initialization function (if using single phase initialization) or " "a function called from a module execution slot (if using multi-phase " @@ -603,28 +661,44 @@ msgid "" "module state:" msgstr "" -#: ../../c-api/module.rst:484 +#: ../../c-api/module.rst:494 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:487 +#: ../../c-api/module.rst:497 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" -#: ../../c-api/module.rst:489 +#: ../../c-api/module.rst:499 ../../c-api/module.rst:560 +msgid "Example usage::" +msgstr "Exemplo de uso::" + +#: ../../c-api/module.rst:501 msgid "" -"Return ``NULL`` if *value* is ``NULL``. It must be called with an exception " -"raised in this case." +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" if (obj == NULL) {\n" +" return -1;\n" +" }\n" +" int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" +" Py_DECREF(obj);\n" +" return res;\n" +" }" msgstr "" -#: ../../c-api/module.rst:492 ../../c-api/module.rst:541 -msgid "Example usage::" -msgstr "Exemplo de uso::" +#: ../../c-api/module.rst:513 +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:506 ../../c-api/module.rst:559 +#: ../../c-api/module.rst:517 ../../c-api/module.rst:578 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" @@ -632,90 +706,161 @@ msgstr "" "O exemplo também pode ser escrito sem verificar explicitamente se *obj* é " "``NULL``::" -#: ../../c-api/module.rst:518 ../../c-api/module.rst:575 +#: ../../c-api/module.rst:520 +msgid "" +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" int res = PyModule_AddObjectRef(module, \"spam\", obj);\n" +" Py_XDECREF(obj);\n" +" return res;\n" +" }" +msgstr "" + +#: ../../c-api/module.rst:529 ../../c-api/module.rst:594 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:526 +#: ../../c-api/module.rst:532 +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:545 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " "*value* on success (if it returns ``0``)." msgstr "" -#: ../../c-api/module.rst:529 +#: ../../c-api/module.rst:548 msgid "" "The new :c:func:`PyModule_AddObjectRef` function is recommended, since it is " -"easy to introduce reference leaks by misusing the :c:func:" -"`PyModule_AddObject` function." +"easy to introduce reference leaks by misusing " +"the :c:func:`PyModule_AddObject` function." msgstr "" -#: ../../c-api/module.rst:535 +#: ../../c-api/module.rst:554 msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " "releases the reference to *value* **on success**." msgstr "" -#: ../../c-api/module.rst:538 +#: ../../c-api/module.rst:557 msgid "" -"This means that its return value must be checked, and calling code must :c:" -"func:`Py_DECREF` *value* manually on error." +"This means that its return value must be checked, and calling code " +"must :c:func:`Py_DECREF` *value* manually on error." +msgstr "" + +#: ../../c-api/module.rst:562 +msgid "" +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" if (obj == NULL) {\n" +" return -1;\n" +" }\n" +" if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" +" Py_DECREF(obj);\n" +" return -1;\n" +" }\n" +" // PyModule_AddObject() stole a reference to obj:\n" +" // Py_DECREF(obj) is not needed here\n" +" return 0;\n" +"}" msgstr "" #: ../../c-api/module.rst:581 msgid "" +"static int\n" +"add_spam(PyObject *module, int value)\n" +"{\n" +" PyObject *obj = PyLong_FromLong(value);\n" +" if (PyModule_AddObject(module, \"spam\", obj) < 0) {\n" +" Py_XDECREF(obj);\n" +" return -1;\n" +" }\n" +" // PyModule_AddObject() stole a reference to obj:\n" +" // Py_DECREF(obj) is not needed here\n" +" return 0;\n" +"}" +msgstr "" + +#: ../../c-api/module.rst:600 +msgid "" "Add an integer constant to *module* as *name*. This convenience function " -"can be used from the module's initialization function. Return ``-1`` on " -"error, ``0`` on success." +"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:604 +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:588 +#: ../../c-api/module.rst:610 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`` on error, ``0`` on success." +"be ``NULL``-terminated. Return ``-1`` with an exception set on error, ``0`` " +"on success." msgstr "" -#: ../../c-api/module.rst:595 +#: ../../c-api/module.rst:615 +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:622 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`` on " -"error, ``0`` on success." +"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:603 +#: ../../c-api/module.rst:630 msgid "Add a string constant to *module*." msgstr "" -#: ../../c-api/module.rst:607 +#: ../../c-api/module.rst:634 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`` on error, ``0`` on success." +"``-1`` with an exception set on error, ``0`` on success." msgstr "" -#: ../../c-api/module.rst:617 +#: ../../c-api/module.rst:644 msgid "Module lookup" msgstr "Pesquisa por módulos" -#: ../../c-api/module.rst:619 +#: ../../c-api/module.rst:646 msgid "" "Single-phase initialization 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:623 +#: ../../c-api/module.rst:650 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:628 +#: ../../c-api/module.rst:655 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -724,18 +869,18 @@ msgid "" "to the interpreter state yet, it returns ``NULL``." msgstr "" -#: ../../c-api/module.rst:635 +#: ../../c-api/module.rst:662 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`." +"This allows the module object to be accessible " +"via :c:func:`PyState_FindModule`." msgstr "" -#: ../../c-api/module.rst:638 +#: ../../c-api/module.rst:665 msgid "Only effective on modules created using single-phase initialization." msgstr "" -#: ../../c-api/module.rst:640 +#: ../../c-api/module.rst:667 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module, " "so it is unnecessary (but harmless) to call it from module initialization " @@ -746,18 +891,20 @@ msgid "" "state updates)." msgstr "" -#: ../../c-api/module.rst:648 ../../c-api/module.rst:659 +#: ../../c-api/module.rst:675 ../../c-api/module.rst:686 msgid "The caller must hold the GIL." -msgstr "" +msgstr "O caller deve possuir o GIL." -#: ../../c-api/module.rst:650 -msgid "Return 0 on success or -1 on failure." +#: ../../c-api/module.rst:677 +msgid "Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" +"Retorna ``-1`` com uma exceção definida em caso de erro, ``0`` em caso de " +"sucesso." -#: ../../c-api/module.rst:656 +#: ../../c-api/module.rst:683 msgid "" "Removes the module object created from *def* from the interpreter state. " -"Return 0 on success or -1 on failure." +"Return ``-1`` with an exception set on error, ``0`` on success." msgstr "" #: ../../c-api/module.rst:8 @@ -772,30 +919,30 @@ msgstr "módulo" msgid "ModuleType (in module types)" msgstr "" -#: ../../c-api/module.rst:33 ../../c-api/module.rst:74 +#: ../../c-api/module.rst:33 ../../c-api/module.rst:77 msgid "__name__ (module attribute)" -msgstr "" +msgstr "__name__ (atributo de módulo)" #: ../../c-api/module.rst:33 msgid "__doc__ (module attribute)" -msgstr "" +msgstr "__doc__ (atributo de módulo)" -#: ../../c-api/module.rst:33 ../../c-api/module.rst:104 +#: ../../c-api/module.rst:33 ../../c-api/module.rst:108 msgid "__file__ (module attribute)" -msgstr "" +msgstr "__file__ (atributo de módulo)" #: ../../c-api/module.rst:33 msgid "__package__ (module attribute)" -msgstr "" +msgstr "__package__ (atributo de módulo)" #: ../../c-api/module.rst:33 msgid "__loader__ (module attribute)" -msgstr "" +msgstr "__loader__ (atributo de módulo)" -#: ../../c-api/module.rst:60 +#: ../../c-api/module.rst:63 msgid "__dict__ (module attribute)" -msgstr "" +msgstr "__dict__ (atributo de módulo)" -#: ../../c-api/module.rst:74 ../../c-api/module.rst:104 +#: ../../c-api/module.rst:77 ../../c-api/module.rst:108 msgid "SystemError (built-in exception)" msgstr "" diff --git a/c-api/none.po b/c-api/none.po index 15246ddab..1eee8e8ef 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2023 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/number.po b/c-api/number.po index d96a5d003..30fdbe8c6 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -1,26 +1,27 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2023 -# Rafael Fontenelle , 2023 +# willian ohara, 2026 +# Lucas Silva, 2026 +# Rafael Fontenelle , 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-13 22:49+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2026\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -77,28 +78,40 @@ msgid "" "Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is " "the equivalent of the Python expression ``o1 // o2``." msgstr "" +"Retorna o piso de *o1* dividido por *o2* ou ``NULL`` em caso de falha. Isso " +"é equivalente à expressão Python ``o1 // o2``." #: ../../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 " +"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 "" +"Retorna uma aproximação razoável para o valor matemático de *o1* dividido " +"por *o2*, ou ``NULL`` em caso de falha. O valor devolvido é \"aproximado\" " +"porque os números binários de ponto flutuante são aproximados; não é " +"possível representar todos os números reais na base dois. Esta função pode " +"devolver um valor de ponto flutuante quando lhe são passados dois inteiros. " +"Isso é o equivalente à expressão Python ``o1 / o2``." #: ../../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 "" +"Retorna o resto da divisão de *o1* por *o2* ou ``NULL`` em caso de falha. " +"Isso é equivalente à expressão Python ``o1 % o2``." #: ../../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 "" +"Consulte a função embutida :func:`divmod`. Retorna ``NULL`` em caso de " +"falha. Isso é equivalente à expressão Python ``divmod(o1, o2)``." #: ../../c-api/number.rst:77 msgid "" @@ -107,60 +120,84 @@ msgid "" "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 "" +"Consulte a função embutida :func:`pow`. Retorna ``NULL`` em caso de falha. " +"Isso é equivalente à expressão Python ``pow(o1, o2, o3)``, na qual *o3* é " +"opcional. Se *o3* deve ser ignorado, passe :c:data:`Py_None` em seu lugar " +"(passar ``NULL`` para *o3* causaria um acesso ilegal à memória)." #: ../../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 "" +"Retorna a negação de *o* em caso de sucesso ou ``NULL`` em caso de falha. " +"Isso é equivalente à expressão Python ``-o``." #: ../../c-api/number.rst:91 msgid "" "Returns *o* on success, or ``NULL`` on failure. This is the equivalent of " "the Python expression ``+o``." msgstr "" +"Retorna *o* em caso de sucesso ou ``NULL`` em caso de falha. Isso é " +"equivalente à expressão Python ``+o``." #: ../../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 "" +"Retorna o valor absoluto de *o* ou ``NULL`` em caso de falha. Isso é " +"equivalente à expressão Python ``abs(o)``." #: ../../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 "" +"Retorna a negação bit a bit de *o* em caso de sucesso, ou ``NULL`` em caso " +"de falha. Isso é equivalente à expressão Python ``~o``." #: ../../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 "" +"Retorna o resultado do deslocamento à esquerda de *o1* por *o2* em caso de " +"sucesso ou ``NULL`` em caso de falha. Isso é equivalente à expressão Python " +"``o1 << o2``." #: ../../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 "" +"Retorna o resultado do deslocamento à direita de *o1* por *o2* em caso de " +"sucesso ou ``NULL`` em caso de falha. Isso é equivalente à expressão Python " +"``o1 >> o2``." #: ../../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 "" +"Retorna o bit a bit \"e\" de *o1* e *o2* em caso de sucesso e ``NULL`` em " +"caso de falha. Isso é equivalente à expressão Python ``o1 & o2``." #: ../../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 "" +"Retorna o bit a bit \"ou exclusivo\" de *o1* por *o2* em caso de sucesso ou " +"``NULL`` em caso de falha. Isso é equivalente à expressão Python ``o1 ^ o2``." #: ../../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 "" +"Retorna o bit a bit \"ou\" de *o1* e *o2* em caso de sucesso ou ``NULL`` em " +"caso de falha. Isto é equivalente à expressão Python ``o1 | o2``." #: ../../c-api/number.rst:141 msgid "" @@ -168,6 +205,9 @@ msgid "" "operation is done *in-place* when *o1* supports it. This is the equivalent " "of the Python statement ``o1 += o2``." msgstr "" +"Retorna o resultado da adição de *o1* e *o2* ou ``NULL`` em caso de falha. A " +"operação é feita *no local* quando *o1* dá suporte a isso. Isto é " +"equivalente à instrução Python ``o1 += o2``." #: ../../c-api/number.rst:148 msgid "" @@ -175,6 +215,9 @@ msgid "" "The operation is done *in-place* when *o1* supports it. This is the " "equivalent of the Python statement ``o1 -= o2``." msgstr "" +"Retorna o resultado da subtração de *o2* de *o1* ou ``NULL`` em caso de " +"falha. A operação é feita *no local* quando *o1* dá suporte a isso. Isto é " +"equivalente à instrução Python ``o1 -= o2``." #: ../../c-api/number.rst:155 msgid "" @@ -182,6 +225,9 @@ msgid "" "The operation is done *in-place* when *o1* supports it. This is the " "equivalent of the Python statement ``o1 *= o2``." msgstr "" +"Retorna o resultado da multiplicação de *o1* e *o2* ou ``NULL`` em caso de " +"falha. A operação é feita *no local* quando *o1* dá suporte a isso. Isto é " +"equivalente à instrução Python ``o1 *= o2``." #: ../../c-api/number.rst:162 msgid "" @@ -189,6 +235,9 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 @= o2``." msgstr "" +"Retorna o resultado da multiplicação de matrizes entre *o1* e *o2*, ou " +"``NULL`` em caso de falha. A operação é realizada no local quando *o1* " +"oferece suporte a isso. Isso é equivalente à instrução Python ``o1 @= o2``." #: ../../c-api/number.rst:171 msgid "" @@ -196,17 +245,27 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 //= o2``." msgstr "" +"Retorna o valor matemático mínimo da divisão de *o1* por *o2* ou ``NULL`` em " +"caso de falha. A operação é feita *no local* quando *o1* dá suporte a isso. " +"Isto é equivalente à instrução Python ``o1 //= o2``." #: ../../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 " +"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 "" +"Retorna uma aproximação razoável para o valor matemático de *o1* dividido " +"por *o2*, ou ``NULL`` em caso de falha. O valor de retorno é \"aproximado\" " +"porque os números binários de ponto flutuante são aproximados; não é " +"possível representar todos os números reais na base dois. Esta função pode " +"retornar um valor de ponto flutuante quando lhe são passados dois inteiros. " +"A operação é feita no local quando *o1* oferece suporte a isso. Isso é o " +"equivalente à instrução Python ``o1 /= o2``." #: ../../c-api/number.rst:188 msgid "" @@ -214,6 +273,9 @@ msgid "" "operation is done *in-place* when *o1* supports it. This is the equivalent " "of the Python statement ``o1 %= o2``." msgstr "" +"Retorna o resto da divisão de *o1* por *o2* ou ``NULL`` em caso de falha. A " +"operação é feita *no local* quando *o1* dá suporte a isso. Isto é " +"equivalente à instrução Python ``o1 %= o2``." #: ../../c-api/number.rst:197 msgid "" @@ -224,6 +286,12 @@ msgid "" "pass :c:data:`Py_None` in its place (passing ``NULL`` for *o3* would cause " "an illegal memory access)." msgstr "" +"Consulte a função embutida :func:`pow`. Retorna ``NULL`` em caso de falha. A " +"operação é feita no lugar quando *o1* oferece suporte a isso. Isso é " +"equivalente à instrução Python ``o1 **= o2`` quando o3 é :c:data:`Py_None` " +"ou, do contrário, uma variante no local ``pow(o1, o2, o3)``. Se *o3* deve " +"ser ignorado, passe :c:data:`Py_None` em seu lugar (passar ``NULL`` para " +"*o3* causaria um acesso ilegal à memória)." #: ../../c-api/number.rst:206 msgid "" @@ -231,6 +299,10 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 <<= o2``." msgstr "" +"Retorna o resultado do deslocamento à esquerda de *o1* por *o2* em caso de " +"sucesso, ou ``NULL`` em caso de falha. A operação é feita no local quando " +"*o1* oferece suporte a isso. Isto é equivalente à instrução Python ``o1 <<= " +"o2``." #: ../../c-api/number.rst:213 msgid "" @@ -238,6 +310,10 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 >>= o2``." msgstr "" +"Retorna o resultado do deslocamento à direita de *o1* por *o2* em caso de " +"sucesso, ou ``NULL`` em caso de falha. A operação é feita no local quando " +"*o1* oferece suporte a isso. Isto é equivalente à instrução Python ``o1 >>= " +"o2``." #: ../../c-api/number.rst:220 msgid "" @@ -245,6 +321,9 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 &= o2``." msgstr "" +"Retorna o \"bitwise and\" de *o1* e *o2* em caso de sucesso e ``NULL`` em " +"caso de falha. A operação é feita no local quando *o1* oferece suporte a " +"isso. Isto é equivalente à instrução Python ``o1 &= o2``." #: ../../c-api/number.rst:227 msgid "" @@ -252,6 +331,9 @@ msgid "" "on failure. The operation is done *in-place* when *o1* supports it. This " "is the equivalent of the Python statement ``o1 ^= o2``." msgstr "" +"Retorna o \"bitwise exclusive or\" de *o1* por *o2* em caso de sucesso, ou " +"``NULL`` em caso de falha. A operação é feita no local quando *o1* oferece " +"suporte a isso. Isto é equivalente à instrução Python ``o1 ^= o2``." #: ../../c-api/number.rst:234 msgid "" @@ -259,24 +341,33 @@ msgid "" "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 |= o2``." msgstr "" +"Retorna o \"bitwise or\" de *o1* e *o2* em caso de sucesso, ou ``NULL`` em " +"caso de falha. A operação é feita no local quando *o1* oferece suporte a " +"isso. Isto é equivalente à instrução Python ``o1 |= o2``." #: ../../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 "" +"Retorna o *o* convertido para um objeto inteiro em caso de sucesso ou " +"``NULL`` em caso de falha. Isto é equivalente à expressão Python ``int(o)``." #: ../../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 "" +"Retorna o *o* convertido para um objeto float em caso de sucesso ou ``NULL`` " +"em caso de falha. Isto é equivalente à expressão Python ``float(o)``." #: ../../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." +"Returns the *o* converted to a Python int on success or ``NULL`` with " +"a :exc:`TypeError` exception raised on failure." msgstr "" +"Retorna *o* convertido para int Python em caso de sucesso ou ``NULL`` com " +"um :exc:`TypeError` exceção levantada ao falhar." #: ../../c-api/number.rst:260 msgid "" @@ -291,9 +382,14 @@ 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." +"respectively. If *n* is not a Python int, it is converted " +"with :c:func:`PyNumber_Index` first." msgstr "" +"Retorna o inteiro *n* convertido para a base *base* como uma string. O " +"argumento *base* deve ser 2, 8, 10 ou 16. Para as bases 2, 8 ou 16, a string " +"retornada é prefixada com um marcador de base ``'0b'``, ``'0o'`` ou " +"``'0x'``, respectivamente. Se *n* não for um inteiro Python, ele é " +"convertido primeiro com :c:func:`PyNumber_Index`." #: ../../c-api/number.rst:276 msgid "" @@ -301,16 +397,26 @@ msgid "" "interpreted as an integer. If the call fails, an exception is raised and " "``-1`` is returned." msgstr "" +"Retorna *o* convertido para um valor :c:type:`Py_ssize_t` se *o* puder ser " +"interpretado como um inteiro. Se a chamada falhar, uma exceção é levantada e " +"``-1`` é retornado." #: ../../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 "" +"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 "" +"Se *o* puder ser convertido para um int Python, mas a tentativa de conversão " +"para um valor :c:type:`Py_ssize_t` levantar um :exc:`OverflowError`, então o " +"argumento *exc* é o tipo de exceção que será gerada " +"(geralmente :exc:`IndexError` ou :exc:`OverflowError`). Se *exc* for " +"``NULL``, então a exceção é limpa e o valor é cortado para " +"``PY_SSIZE_T_MIN`` para um inteiro negativo ou ``PY_SSIZE_T_MAX`` para um " +"inteiro positivo." #: ../../c-api/number.rst:289 msgid "" @@ -318,6 +424,9 @@ msgid "" "``tp_as_number`` structure filled in), and ``0`` otherwise. This function " "always succeeds." msgstr "" +"Retorna ``1`` se *o* for um índice inteiro (tem o slot ``nb_index`` da " +"estrutura ``tp_as_number`` preenchido) e ``0`` caso contrário. Esta função " +"sempre tem sucesso." #: ../../c-api/number.rst:67 ../../c-api/number.rst:75 #: ../../c-api/number.rst:97 ../../c-api/number.rst:195 @@ -327,15 +436,15 @@ msgstr "função embutida" #: ../../c-api/number.rst:67 msgid "divmod" -msgstr "" +msgstr "divmod" #: ../../c-api/number.rst:75 ../../c-api/number.rst:195 msgid "pow" -msgstr "" +msgstr "pow" #: ../../c-api/number.rst:97 msgid "abs" -msgstr "" +msgstr "abs" #: ../../c-api/number.rst:241 msgid "int" diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index d5e22b753..03b2b8192 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Claudio Rogerio Carvalho Filho , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-07-29 13:25+0000\n" -"Last-Translator: Claudio Rogerio Carvalho Filho , " -"2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -48,23 +46,24 @@ msgstr "" #: ../../c-api/objbuffer.rst:15 msgid "" "Therefore, it is recommended that you call :c:func:`PyObject_GetBuffer` (or " -"the ``y*`` or ``w*`` :ref:`format codes ` with the :c:func:" -"`PyArg_ParseTuple` family of functions) to get a buffer view over an object, " -"and :c:func:`PyBuffer_Release` when the buffer view can be released." +"the ``y*`` or ``w*`` :ref:`format codes ` with " +"the :c:func:`PyArg_ParseTuple` family of functions) to get a buffer view " +"over an object, and :c:func:`PyBuffer_Release` when the buffer view can be " +"released." msgstr "" -"Portanto, é recomendável que você chame :c:func:`PyObject_GetBuffer` (ou os :" -"ref:`códigos de formatação ` ``y*`` ou ``w*`` com o família de " -"funções de :c:func:`PyArg_ParseTuple`) para obter uma visão de buffer sobre " -"um objeto e :c:func:`PyBuffer_Release` quando a visão de buffer puder ser " -"liberada." +"Portanto, é recomendável que você chame :c:func:`PyObject_GetBuffer` (ou " +"os :ref:`códigos de formatação ` ``y*`` ou ``w*`` com o família " +"de funções de :c:func:`PyArg_ParseTuple`) para obter uma visão de buffer " +"sobre um objeto e :c:func:`PyBuffer_Release` quando a visão de buffer puder " +"ser liberada." #: ../../c-api/objbuffer.rst:23 msgid "" "Returns a pointer to a read-only memory location usable as character-based " "input. The *obj* argument must support the single-segment character buffer " "interface. On success, returns ``0``, sets *buffer* to the memory location " -"and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" -"`TypeError` on error." +"and *buffer_len* to the buffer length. Returns ``-1`` and sets " +"a :exc:`TypeError` on error." msgstr "" "Retorna um ponteiro para um local de memória somente leitura utilizável como " "entrada baseada em caracteres. O argumento *obj* deve ter suporte a " @@ -78,8 +77,8 @@ msgid "" "Returns a pointer to a read-only memory location containing arbitrary data. " "The *obj* argument must support the single-segment readable buffer " "interface. On success, returns ``0``, sets *buffer* to the memory location " -"and *buffer_len* to the buffer length. Returns ``-1`` and sets a :exc:" -"`TypeError` on error." +"and *buffer_len* to the buffer length. Returns ``-1`` and sets " +"a :exc:`TypeError` on error." msgstr "" "Retorna um ponteiro para um local de memória somente leitura que contém " "dados arbitrários. O argumento *obj* deve ter suporte a interface de buffer " @@ -115,5 +114,5 @@ msgstr "" "Retorna um ponteiro para um local de memória gravável. O argumento *obj* " "deve ter suporte a interface de buffer de caracteres de segmento único. Em " "caso de sucesso, retorna ``0``, define *buffer* com o local da memória e " -"*buffer_len* com o comprimento do buffer. Retorna ``-1`` e define a :exc:" -"`TypeError` em caso de erro." +"*buffer_len* com o comprimento do buffer. Retorna ``-1`` e define " +"a :exc:`TypeError` em caso de erro." diff --git a/c-api/object.po b/c-api/object.po index 51b328af1..32b3a5891 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2023 -# Rafael Fontenelle , 2023 -# Vitor Buxbaum Orlandi, 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-10 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Vitor Buxbaum Orlandi, 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -40,16 +38,23 @@ msgstr "" #: ../../c-api/object.rst:17 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)." +"function (that is, create a new :term:`strong reference` " +"to :const:`NotImplemented` and return it)." msgstr "" +"Manipula adequadamente o retorno de :c:data:`Py_NotImplemented` de dentro de " +"uma função C (ou seja, cria uma nova :term:`referência forte` " +"para :const:`NotImplemented` e retorna-a)." #: ../../c-api/object.rst:24 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 " -"function would use the :func:`str` of the object instead of the :func:`repr`." +"Flag to be used with multiple functions that print the object " +"(like :c:func:`PyObject_Print` and :c:func:`PyFile_WriteObject`). If passed, " +"these function would use the :func:`str` of the object instead of " +"the :func:`repr`." msgstr "" +"Sinaliza a ser usado com múltiplas funções que imprimem o objeto " +"(como :c:func:`PyObject_Print` e :c:func:`PyFile_WriteObject`). Se passada, " +"esta função usaria o :func:`str` do objeto em vez do :func:`repr`." #: ../../c-api/object.rst:32 msgid "" @@ -68,24 +73,24 @@ msgstr "" #: ../../c-api/object.rst:46 msgid "" -"Exceptions that occur when this calls :meth:`~object.__getattr__` and :meth:" -"`~object.__getattribute__` methods are silently ignored. For proper error " -"handling, use :c:func:`PyObject_GetAttr` instead." +"Exceptions that occur when this calls :meth:`~object.__getattr__` " +"and :meth:`~object.__getattribute__` methods are silently ignored. For " +"proper error handling, use :c:func:`PyObject_GetAttr` instead." msgstr "" #: ../../c-api/object.rst:53 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*`." +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." msgstr "" #: ../../c-api/object.rst:59 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_GetAttrString` instead." +"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_GetAttrString` instead." msgstr "" #: ../../c-api/object.rst:67 @@ -98,18 +103,19 @@ msgstr "" #: ../../c-api/object.rst:74 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*`." +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." msgstr "" #: ../../c-api/object.rst:81 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." +"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 "" #: ../../c-api/object.rst:91 @@ -129,8 +135,8 @@ msgstr "" #: ../../c-api/object.rst:103 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*`." +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." msgstr "" #: ../../c-api/object.rst:107 @@ -139,7 +145,17 @@ msgid "" "in favour of using :c:func:`PyObject_DelAttrString`." msgstr "" -#: ../../c-api/object.rst:113 +#: ../../c-api/object.rst:110 +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:120 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 " @@ -151,26 +167,36 @@ msgid "" "returned." msgstr "" -#: ../../c-api/object.rst:125 +#: ../../c-api/object.rst:132 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 "" -#: ../../c-api/object.rst:131 +#: ../../c-api/object.rst:138 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*`." +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " +"a :c:expr:`PyObject*`." msgstr "" -#: ../../c-api/object.rst:138 +#: ../../c-api/object.rst:142 +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:153 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." msgstr "" -#: ../../c-api/object.rst:141 +#: ../../c-api/object.rst:156 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 " @@ -179,67 +205,67 @@ msgid "" "the object." msgstr "" -#: ../../c-api/object.rst:147 +#: ../../c-api/object.rst:162 msgid "On failure, returns ``NULL`` with an exception set." msgstr "" -#: ../../c-api/object.rst:154 +#: ../../c-api/object.rst:169 msgid "" "A generic implementation for the setter of a ``__dict__`` descriptor. This " "implementation does not allow the dictionary to be deleted." msgstr "" -#: ../../c-api/object.rst:162 +#: ../../c-api/object.rst:177 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:165 +#: ../../c-api/object.rst:180 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:172 +#: ../../c-api/object.rst:187 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." +"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 "" -#: ../../c-api/object.rst:182 +#: ../../c-api/object.rst:197 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:187 +#: ../../c-api/object.rst:202 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 "" -#: ../../c-api/object.rst:192 +#: ../../c-api/object.rst:207 msgid "" "Format *obj* using *format_spec*. This is equivalent to the Python " "expression ``format(obj, format_spec)``." msgstr "" -#: ../../c-api/object.rst:195 +#: ../../c-api/object.rst:210 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:203 +#: ../../c-api/object.rst:218 msgid "" "Compute a string representation of object *o*. Returns the string " "representation on success, ``NULL`` on failure. This is the equivalent of " @@ -247,7 +273,7 @@ msgid "" "function." msgstr "" -#: ../../c-api/object.rst:207 ../../c-api/object.rst:231 +#: ../../c-api/object.rst:222 ../../c-api/object.rst:246 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -255,16 +281,16 @@ msgstr "" "Essa função agora inclui uma asserção de depuração para ajudar a garantir " "que ela não descarte silenciosamente uma exceção ativa." -#: ../../c-api/object.rst:215 +#: ../../c-api/object.rst:230 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." +"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 "" -#: ../../c-api/object.rst:226 +#: ../../c-api/object.rst:241 msgid "" "Compute a string representation of object *o*. Returns the string " "representation on success, ``NULL`` on failure. This is the equivalent of " @@ -272,7 +298,7 @@ msgid "" "function and, therefore, by the :func:`print` function." msgstr "" -#: ../../c-api/object.rst:240 +#: ../../c-api/object.rst:255 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 " @@ -281,73 +307,73 @@ msgid "" "bytes object." msgstr "" -#: ../../c-api/object.rst:249 +#: ../../c-api/object.rst:264 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 "" -#: ../../c-api/object.rst:252 ../../c-api/object.rst:271 +#: ../../c-api/object.rst:267 ../../c-api/object.rst:286 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 "" -#: ../../c-api/object.rst:256 +#: ../../c-api/object.rst:271 msgid "" -"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to " +"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 ``cls.__mro__``." +"*derived* is a subclass of *cls* if it is a direct or indirect subclass, " +"i.e. contained in :attr:`cls.__mro__ `." msgstr "" -#: ../../c-api/object.rst:261 +#: ../../c-api/object.rst:276 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:`~class.__bases__` attribute (which must be a tuple of base classes)." +"a :attr:`~type.__bases__` attribute (which must be a tuple of base classes)." msgstr "" -#: ../../c-api/object.rst:268 +#: ../../c-api/object.rst:283 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 "" -#: ../../c-api/object.rst:275 +#: ../../c-api/object.rst:290 msgid "" -"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to " +"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 "" -#: ../../c-api/object.rst:279 +#: ../../c-api/object.rst:294 msgid "" -"An instance *inst* can override what is considered its class by having a :" -"attr:`~instance.__class__` attribute." +"An instance *inst* can override what is considered its class by having " +"a :attr:`~object.__class__` attribute." msgstr "" -#: ../../c-api/object.rst:282 +#: ../../c-api/object.rst:297 msgid "" "An object *cls* can override if it is considered a class, and what its base " -"classes are, by having a :attr:`~class.__bases__` attribute (which must be a " +"classes are, by having a :attr:`~type.__bases__` attribute (which must be a " "tuple of base classes)." msgstr "" -#: ../../c-api/object.rst:291 +#: ../../c-api/object.rst:306 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:294 +#: ../../c-api/object.rst:309 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:301 +#: ../../c-api/object.rst:316 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 " @@ -355,21 +381,21 @@ msgid "" "that it is not hashable." msgstr "" -#: ../../c-api/object.rst:309 +#: ../../c-api/object.rst:324 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:316 +#: ../../c-api/object.rst:331 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:325 +#: ../../c-api/object.rst:340 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 " @@ -380,13 +406,13 @@ msgid "" "when a new :term:`strong reference` is needed." msgstr "" -#: ../../c-api/object.rst:337 +#: ../../c-api/object.rst:352 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:346 +#: ../../c-api/object.rst:361 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, " @@ -394,7 +420,7 @@ msgid "" "``len(o)``." msgstr "" -#: ../../c-api/object.rst:353 +#: ../../c-api/object.rst:368 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 " @@ -403,36 +429,46 @@ msgid "" "defaultvalue)``." msgstr "" -#: ../../c-api/object.rst:363 +#: ../../c-api/object.rst:378 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 "" -#: ../../c-api/object.rst:369 +#: ../../c-api/object.rst:384 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 "" -#: ../../c-api/object.rst:377 +#: ../../c-api/object.rst:392 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 "" -#: ../../c-api/object.rst:383 +#: ../../c-api/object.rst:398 +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 "" +"É o mesmo que :c:func:`PyObject_DelItem`, mas *key* é especificada como uma " +"string de bytes :c:expr:`const char*` codificada em UTF-8, em vez de " +"um :c:expr:`PyObject*`." + +#: ../../c-api/object.rst:405 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." +"case, if no execution frame is active then ``NULL`` is returned " +"but :c:func:`PyErr_Occurred` will return false." msgstr "" -#: ../../c-api/object.rst:392 +#: ../../c-api/object.rst:414 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 " @@ -440,99 +476,106 @@ msgid "" "object cannot be iterated." msgstr "" -#: ../../c-api/object.rst:400 +#: ../../c-api/object.rst:422 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." +"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:410 +#: ../../c-api/object.rst:428 +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:438 msgid "Get a pointer to subclass-specific data reserved for *cls*." msgstr "" -#: ../../c-api/object.rst:412 +#: ../../c-api/object.rst:440 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:416 +#: ../../c-api/object.rst:444 msgid "On error, set an exception and return ``NULL``." msgstr "" -#: ../../c-api/object.rst:422 +#: ../../c-api/object.rst:450 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:425 +#: ../../c-api/object.rst:453 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`)." +"`; it is safe to use this larger size (e.g. " +"with :c:func:`!memset`)." msgstr "" -#: ../../c-api/object.rst:428 +#: ../../c-api/object.rst:456 msgid "" -"The type *cls* **must** have been created using negative :c:member:" -"`PyType_Spec.basicsize`. Python does not check this." +"The type *cls* **must** have been created using " +"negative :c:member:`PyType_Spec.basicsize`. Python does not check this." msgstr "" -#: ../../c-api/object.rst:432 +#: ../../c-api/object.rst:460 msgid "On error, set an exception and return a negative value." msgstr "" -#: ../../c-api/object.rst:438 +#: ../../c-api/object.rst:466 msgid "" -"Get a pointer to per-item data for a class with :c:macro:" -"`Py_TPFLAGS_ITEMS_AT_END`." +"Get a pointer to per-item data for a class " +"with :c:macro:`Py_TPFLAGS_ITEMS_AT_END`." msgstr "" -#: ../../c-api/object.rst:441 +#: ../../c-api/object.rst:469 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:201 ../../c-api/object.rst:213 -#: ../../c-api/object.rst:238 ../../c-api/object.rst:289 -#: ../../c-api/object.rst:323 ../../c-api/object.rst:344 +#: ../../c-api/object.rst:216 ../../c-api/object.rst:228 +#: ../../c-api/object.rst:253 ../../c-api/object.rst:304 +#: ../../c-api/object.rst:338 ../../c-api/object.rst:359 msgid "built-in function" msgstr "função embutida" -#: ../../c-api/object.rst:201 +#: ../../c-api/object.rst:216 msgid "repr" msgstr "repr" -#: ../../c-api/object.rst:213 +#: ../../c-api/object.rst:228 msgid "ascii" msgstr "ascii" -#: ../../c-api/object.rst:221 +#: ../../c-api/object.rst:236 msgid "string" msgstr "string" -#: ../../c-api/object.rst:221 +#: ../../c-api/object.rst:236 msgid "PyObject_Str (C function)" msgstr "" -#: ../../c-api/object.rst:238 +#: ../../c-api/object.rst:253 msgid "bytes" msgstr "bytes" -#: ../../c-api/object.rst:289 +#: ../../c-api/object.rst:304 msgid "hash" msgstr "hash" -#: ../../c-api/object.rst:323 +#: ../../c-api/object.rst:338 msgid "type" msgstr "tipo" -#: ../../c-api/object.rst:344 +#: ../../c-api/object.rst:359 msgid "len" msgstr "len" diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 99178c738..157b92d39 100644 --- a/c-api/objimpl.po +++ b/c-api/objimpl.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Raphael Mendonça, 2021 -# Claudio Rogerio Carvalho Filho , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:49+0000\n" -"Last-Translator: Claudio Rogerio Carvalho Filho , " -"2021\n" +"POT-Creation-Date: 2025-01-03 14:53+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po index 771096507..298133256 100644 --- a/c-api/perfmaps.po +++ b/c-api/perfmaps.po @@ -1,25 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-14 22:56+0000\n" -"PO-Revision-Date: 2023-05-24 13:07+0000\n" -"Last-Translator: Rafael Fontenelle , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,12 +31,12 @@ msgstr "Suporte a Mapas do Perf" msgid "" "On supported platforms (as of this writing, only Linux), the runtime can " "take advantage of *perf map files* to make Python functions visible to an " -"external profiling tool (such as `perf `_). A running process may create a file in the ``/tmp`` " +"external profiling tool (such as `perf `_). 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 `_." +"Perf tool `_." msgstr "" "Em plataformas suportadas (no momento em que este livro foi escrito, apenas " "Linux), o tempo de execução pode tirar vantagem dos *arquivos de mapa perf* " @@ -61,24 +61,25 @@ msgid "" "Note that holding the Global Interpreter Lock (GIL) is not required for " "these APIs." msgstr "" -"Observe que manter o bloqueio global do interpretador, ou Global Interpreter " -"Lock (GIL), não é necessário para essas APIs." +"Observe que manter a trava global do interpretador (GIL) não é necessário " +"para essas APIs." #: ../../c-api/perfmaps.rst:23 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." +"need to call this explicitly; just " +"use :c:func:`PyUnstable_WritePerfMapEntry` and it will initialize the state " +"on first call." msgstr "" "Abre o arquivo ``/tmp/perf-$pid.map``, a menos que já esteja aberto, e cria " -"um bloqueio para garantir escritas seguras para thread no arquivo (desde que " -"as escritas sejam feitas através de :c:func:" -"`PyUnstable_WritePerfMapEntry` ). Normalmente, não há necessidade de chamar " -"isso explicitamente; basta usar :c:func:`PyUnstable_WritePerfMapEntry` e ele " -"inicializará o estado na primeira chamada." +"uma trava para garantir escritas seguras para thread no arquivo (desde que " +"as escritas sejam feitas através " +"de :c:func:`PyUnstable_WritePerfMapEntry` ). Normalmente, não há necessidade " +"de chamar isso explicitamente; basta " +"usar :c:func:`PyUnstable_WritePerfMapEntry` e ele inicializará o estado na " +"primeira chamada." #: ../../c-api/perfmaps.rst:29 msgid "" @@ -87,9 +88,8 @@ msgid "" "information about the cause of a failure." msgstr "" "Retorna ``0`` em caso de sucesso, ``-1`` em caso de falha ao criar/abrir o " -"arquivo de mapa de desempenho ou ``-2`` em caso de falha na criação de um " -"bloqueio. Verifique ``errno`` para mais informações sobre a causa de uma " -"falha." +"arquivo de mapa de desempenho ou ``-2`` em caso de falha na criação de uma " +"trava. Verifique ``errno`` para mais informações sobre a causa de uma falha." #: ../../c-api/perfmaps.rst:35 msgid "" @@ -99,6 +99,14 @@ msgstr "" "Escreve uma única entrada no arquivo ``/tmp/perf-$pid.map``. Esta função é " "segura para thread. Aqui está a aparência de um exemplo de entrada::" +#: ../../c-api/perfmaps.rst:38 +msgid "" +"# address size name\n" +"7f3529fcf759 b py::bar:/run/t.py" +msgstr "" +"# endereço tamanho nome\n" +"7f3529fcf759 b py::bar:/run/t.py" + #: ../../c-api/perfmaps.rst:41 msgid "" "Will call :c:func:`PyUnstable_PerfMapState_Init` before writing the entry, " @@ -107,8 +115,8 @@ msgid "" msgstr "" "Chamará :c:func:`PyUnstable_PerfMapState_Init` antes de escrever a entrada, " "se o arquivo de mapa de desempenho ainda não estiver aberto. Retorna ``0`` " -"em caso de sucesso ou os mesmos códigos de erro que :c:func:" -"`PyUnstable_PerfMapState_Init` em caso de falha." +"em caso de sucesso ou os mesmos códigos de erro " +"que :c:func:`PyUnstable_PerfMapState_Init` em caso de falha." #: ../../c-api/perfmaps.rst:47 msgid "" @@ -117,8 +125,8 @@ msgid "" "general, there shouldn't be a reason to explicitly call this, except to " "handle specific scenarios such as forking." msgstr "" -"Fecha o arquivo de mapa do perf aberto por :c:func:" -"`PyUnstable_PerfMapState_Init`. Isso é chamado pelo próprio tempo de " -"execução durante o desligamento do interpretador. Em geral, não deve haver " -"motivo para chamar isso explicitamente, exceto para lidar com cenários " -"específicos, como bifurcação." +"Fecha o arquivo de mapa do perf aberto " +"por :c:func:`PyUnstable_PerfMapState_Init`. Isso é chamado pelo próprio " +"tempo de execução durante o desligamento do interpretador. Em geral, não " +"deve haver motivo para chamar isso explicitamente, exceto para lidar com " +"cenários específicos, como bifurcação." diff --git a/c-api/refcounting.po b/c-api/refcounting.po index bda0844f5..c3df46eea 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -1,43 +1,43 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Claudio Rogerio Carvalho Filho , 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-08 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Claudio Rogerio Carvalho Filho , " -"2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../c-api/refcounting.rst:8 msgid "Reference Counting" -msgstr "Contagem de Referências" +msgstr "Contagem de referências" #: ../../c-api/refcounting.rst:10 msgid "" "The functions and macros in this section are used for managing reference " "counts of Python objects." msgstr "" +"As funções e macros nesta sessão são usadas para o gerenciamento de contagem " +"de referências de objetos Python." #: ../../c-api/refcounting.rst:16 msgid "Get the reference count of the Python object *o*." -msgstr "" +msgstr "Obtêm a contagem de referências do objeto Python *o*." #: ../../c-api/refcounting.rst:18 msgid "" @@ -52,6 +52,8 @@ msgstr "" msgid "" "Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." msgstr "" +"Use a função :c:func:`Py_SET_REFCNT()` para definir uma contagem de " +"referências de um objeto." #: ../../c-api/refcounting.rst:26 msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." @@ -74,7 +76,7 @@ msgstr "" #: ../../c-api/refcounting.rst:43 ../../c-api/refcounting.rst:65 #: ../../c-api/refcounting.rst:142 msgid "Immortal objects are not modified." -msgstr "" +msgstr "Os objetos imortais não são modificados." #: ../../c-api/refcounting.rst:49 msgid "" @@ -84,10 +86,14 @@ msgstr "" #: ../../c-api/refcounting.rst:52 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 " +"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 "" +"Esta função é geralmente usada para transformar uma :term:`referência " +"emprestada` em uma :term:`referência forte` local. A " +"função :c:func:`Py_NewRef` pode ser usada para criar uma " +"nova :term:`referência forte`." #: ../../c-api/refcounting.rst:56 msgid "When done using the object, release it by calling :c:func:`Py_DECREF`." @@ -99,11 +105,10 @@ msgid "" "use :c:func:`Py_XINCREF`." msgstr "" -#: ../../c-api/refcounting.rst:61 ../../c-api/refcounting.rst:127 +#: ../../c-api/refcounting.rst:61 msgid "" -"Do not expect this function to actually modify *o* in any way. For at least " -"`some objects `_, this function has no " -"effect." +"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:71 @@ -111,10 +116,12 @@ msgid "" "Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which " "case this has no effect." msgstr "" +"Semelhante a :c:func:`Py_INCREF`, mas o objeto *o* pode ser ``NULL``, caso " +"em que isso não tem efeito." #: ../../c-api/refcounting.rst:74 msgid "See also :c:func:`Py_XNewRef`." -msgstr "" +msgstr "Veja também :c:func:`Py_XNewRef`." #: ../../c-api/refcounting.rst:79 msgid "" @@ -138,21 +145,31 @@ msgstr "" msgid "For example::" msgstr "Por exemplo::" +#: ../../c-api/refcounting.rst:90 +msgid "" +"Py_INCREF(obj);\n" +"self->attr = obj;" +msgstr "" + #: ../../c-api/refcounting.rst:93 msgid "can be written as::" msgstr "" +#: ../../c-api/refcounting.rst:95 +msgid "self->attr = Py_NewRef(obj);" +msgstr "" + #: ../../c-api/refcounting.rst:97 msgid "See also :c:func:`Py_INCREF`." msgstr "" #: ../../c-api/refcounting.rst:104 msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." -msgstr "" +msgstr "Semelhante a :c:func:`Py_NewRef`, mas o objeto *o* pode ser NULL." #: ../../c-api/refcounting.rst:106 msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." -msgstr "" +msgstr "Se o objeto *o* é ``NULL``, a função apenas retorna ``NULL``." #: ../../c-api/refcounting.rst:113 msgid "" @@ -179,10 +196,16 @@ msgid "" "use :c:func:`Py_XDECREF`." msgstr "" +#: ../../c-api/refcounting.rst:127 +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:133 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 " +"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 " @@ -230,8 +253,9 @@ msgstr "" #: ../../c-api/refcounting.rst:180 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." +"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 "" #: ../../c-api/refcounting.rst:187 @@ -244,10 +268,20 @@ msgstr "" msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" msgstr "" +#: ../../c-api/refcounting.rst:192 +msgid "" +"Py_DECREF(dst);\n" +"dst = src;" +msgstr "" + #: ../../c-api/refcounting.rst:195 msgid "The safe way is::" msgstr "" +#: ../../c-api/refcounting.rst:197 +msgid "Py_SETREF(dst, src);" +msgstr "" + #: ../../c-api/refcounting.rst:199 msgid "" "That arranges to set *dst* to *src* _before_ releasing the reference to the " diff --git a/c-api/reflection.po b/c-api/reflection.po index 0eeb7fb48..9e80feef5 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2021 -# Raphael Mendonça, 2021 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-19 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Raphael Mendonça, 2021\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -33,9 +32,9 @@ 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 "" -"Retorna um dicionário dos componentes internos no quadro de execução atual " -"ou o interpretador do estado do encadeamento, se nenhum quadro estiver em " -"execução no momento." +"Retorna um dicionário dos componentes embutidos no quadro de execução atual " +"ou o interpretador do estado da thread, se nenhum quadro estiver em execução " +"no momento." #: ../../c-api/reflection.rst:16 msgid "" @@ -77,10 +76,10 @@ msgstr "" 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*." +"and \" object\". Concatenated with the result " +"of :c:func:`PyEval_GetFuncName`, the result will be a description of *func*." msgstr "" "Retorna uma sequência de caracteres de descrição, dependendo do tipo de " -"*func*. Os valores de retorno incluem \"()\" para funções e métodos, " -"\"construtor\", \"instância\" e \"objeto\". Concatenado com o resultado de :" -"c:func:`PyEval_GetFuncName`, o resultado será uma descrição de *func*." +"*func*. Os valores de retorno incluem \"()\" para funções e métodos, \" " +"constructor\", \" instance\" e \" object\".. Concatenado com o resultado " +"de :c:func:`PyEval_GetFuncName`, o resultado será uma descrição de *func*." diff --git a/c-api/sequence.po b/c-api/sequence.po index dbe1fa7ba..9b63cb217 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Adorilson Bezerra , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -31,19 +30,24 @@ msgstr "Protocolo de sequência" #: ../../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." +"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 "" +"Retorna ``1`` se o objeto fornecer o protocolo de sequência e ``0`` caso " +"contrário. Note que ele retorna ``1`` para classes Python com um " +"método :meth:`~object.__getitem__` a menos que sejam subclasses " +"de :class:`dict` já que no caso geral é impossível determinar que tipo de " +"chaves a classe provê. Esta função sempre obtém sucesso." #: ../../c-api/sequence.rst:23 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 "" -"Retorna o número de objetos em sequência *o* em caso de sucesso e ``-1`` em " -"caso de falha. Isso é equivalente à expressão Python ``len(o)``." +"Retorna o número de objetos na sequência *o* em caso de sucesso, ou ``-1`` " +"em caso de falha. Equivale à expressão Python ``len(o)``." #: ../../c-api/sequence.rst:29 msgid "" @@ -51,7 +55,7 @@ msgid "" "failure. This is the equivalent of the Python expression ``o1 + o2``." msgstr "" "Retorna a concatenação de *o1* e *o2* em caso de sucesso, e ``NULL`` em caso " -"de falha. Este é o equivalente da expressão Python ``o1 + o2``." +"de falha. Equivale à expressão Python ``o1 + o2``." #: ../../c-api/sequence.rst:35 msgid "" @@ -60,8 +64,7 @@ msgid "" "count``." msgstr "" "Retorna o resultado da repetição do objeto sequência *o* *count* vezes ou " -"``NULL`` em caso de falha. Este é o equivalente da expressão Python ``o * " -"count``." +"``NULL`` em caso de falha. Equivale à expressão Python ``o * count``." #: ../../c-api/sequence.rst:41 msgid "" @@ -70,8 +73,8 @@ msgid "" "the equivalent of the Python expression ``o1 += o2``." msgstr "" "Retorna a concatenação de *o1* e *o2* em caso de sucesso, e ``NULL`` em caso " -"de falha. A operação é feita *no local* quando *o1* suportar. Este é o " -"equivalente da expressão Python ``o1 += o2``." +"de falha. A operação é feita *localmente* se *o1* permitir. Equivale à " +"expressão Python ``o1 += o2``." #: ../../c-api/sequence.rst:48 msgid "" @@ -80,16 +83,16 @@ msgid "" "it. This is the equivalent of the Python expression ``o *= count``." msgstr "" "Retorna o resultado da repetição do objeto sequência *o* *count* vezes ou " -"``NULL`` em caso de falha. A operação é feita *localmente* quando *o* " -"suportar. Este é o equivalente da expressão Python ``o *= count``." +"``NULL`` em caso de falha. A operação é feita *localmente* se *o* permitir. " +"Equivale à expressão Python ``o *= count``." #: ../../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 "" -"Retorna o elemento *i* de *o* ou ``NULL`` em caso de falha. Este é o " -"equivalente da expressão Python ``o[i]``." +"Retorna o elemento *i* de *o* ou ``NULL`` em caso de falha. Equivale à " +"expressão Python ``o[i]``." #: ../../c-api/sequence.rst:61 msgid "" @@ -97,7 +100,7 @@ msgid "" "on failure. This is the equivalent of the Python expression ``o[i1:i2]``." msgstr "" "Retorna a fatia do objeto sequência *o* entre *i1* e *i2*, ou ``NULL`` em " -"caso de falha. Este é o equivalente da expressão Python ``o[i1:i2]``." +"caso de falha. Equivale à expressão Python ``o[i1:i2]``." #: ../../c-api/sequence.rst:67 msgid "" @@ -107,23 +110,24 @@ msgid "" "reference to *v*." msgstr "" "Atribui o objeto *v* ao elemento *i* de *o*. Levanta uma exceção e retorna " -"``-1`` em caso de falha; retorna ``0`` em caso de sucesso. Isso é " -"equivalente à instrução Python ``o[i]=v``. Esta função *não* rouba uma " -"referência a *v*." +"``-1`` em caso de falha; retorna ``0`` em caso de sucesso. Esta função *não* " +"rouba uma referência a *v*. Equivale à instrução Python ``o[i]=v``." #: ../../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 "" +"Se *v* for ``NULL``, o elemento será removido, mas este recurso foi " +"descontinuado em favor do uso de :c:func:`PySequence_DelItem`." #: ../../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 "" -"Exclui o elemento *i* do objeto *o*. Retorna ``-1`` em caso de falha. Isso é " -"equivalente à instrução Python ``del o[i]``." +"Exclui o elemento *i* do objeto *o*. Retorna ``-1`` em caso de falha. " +"Equivale à instrução Python ``del o[i]``." #: ../../c-api/sequence.rst:84 msgid "" @@ -131,7 +135,7 @@ msgid "" "to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``." msgstr "" "Atribui o objeto sequência *v* à fatia no objeto sequência *o* de *i1* a " -"*i2*. Isso é equivalente à instrução Python ``o[i1:i2] = v``." +"*i2*. Equivale à instrução Python ``o[i1:i2] = v``." #: ../../c-api/sequence.rst:90 msgid "" @@ -139,7 +143,7 @@ msgid "" "on failure. This is the equivalent of the Python statement ``del o[i1:i2]``." msgstr "" "Exclui a fatia no objeto sequência *o* de *i1* a *i2*. Retorna ``-1`` em " -"caso de falha. Isso é equivalente à instrução Python ``del o[i1:i2]``." +"caso de falha. Equivale à instrução Python ``del o[i1:i2]``." #: ../../c-api/sequence.rst:96 msgid "" @@ -147,6 +151,9 @@ msgid "" "number of keys for which ``o[key] == value``. On failure, return ``-1``. " "This is equivalent to the Python expression ``o.count(value)``." msgstr "" +"Retorna a quantidade de ocorrências de *value* em *o*, isto é, retorna a " +"quantidade de chaves onde ``o[key] == value``. Em caso de falha, retorna " +"``-1``. Equivale à expressão Python ``o.count(value)``." #: ../../c-api/sequence.rst:103 msgid "" @@ -154,12 +161,17 @@ msgid "" "return ``1``, otherwise return ``0``. On error, return ``-1``. This is " "equivalent to the Python expression ``value in o``." msgstr "" +"Determina se *o* contém *value*. Se um item em *o* for igual a *value*, " +"retorna ``1``, senão, retorna ``0``. Em caso de erro, retorna ``-1``. " +"Equivale à expressão Python ``value in o``." #: ../../c-api/sequence.rst:110 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 "" +"Retorna o primeiro índice *i* tal que ``o[i] == value``. Em caso de erro, " +"retorna ``-1``. Equivale à expressão Python ``o.index(value)``." #: ../../c-api/sequence.rst:116 msgid "" @@ -167,6 +179,9 @@ msgid "" "or ``NULL`` on failure. The returned list is guaranteed to be new. This is " "equivalent to the Python expression ``list(o)``." msgstr "" +"Retorna um objeto lista com o mesmo conteúdo da sequência ou iterável *o*, " +"ou ``NULL`` em caso de falha. Garante-se que a lista retornada será nova. " +"Equivale à expressão Python ``list(o)``." #: ../../c-api/sequence.rst:125 msgid "" @@ -175,6 +190,10 @@ msgid "" "returned, otherwise a tuple will be constructed with the appropriate " "contents. This is equivalent to the Python expression ``tuple(o)``." msgstr "" +"Retorna o objeto tupla com o mesmo conteúdo da sequência ou iterável *o*, ou " +"``NULL`` em caso de falha. Se *o* for uma tupla, retorna uma nova " +"referência. Senão, uma tupla será construída com o conteúdo apropriado. " +"Equivale à expressão Python ``tuple(o)``." #: ../../c-api/sequence.rst:133 msgid "" @@ -183,6 +202,10 @@ msgid "" "iterable, raises :exc:`TypeError` with *m* as the message text. Returns " "``NULL`` on failure." msgstr "" +"Retorna a sequência ou iterável *o* como um objeto usável por outras funções " +"da família ``PySequence_Fast*``. Se o objeto não for uma sequência ou " +"iterável, levanta :exc:`TypeError` com *m* sendo o texto da mensagem. " +"Retorna ``NULL`` em caso de falha." #: ../../c-api/sequence.rst:138 msgid "" @@ -190,33 +213,49 @@ msgid "" "a :c:type:`PyTupleObject` or a :c:type:`PyListObject` and access the data " "fields of *o* directly." msgstr "" +"As funções ``PySequence_Fast*`` têm esse nome porque presumem que *o* é " +"um :c:type:`PyTupleObject` ou um :c:type:`PyListObject` e porque acessam os " +"campos de dados de *o* diretamente." #: ../../c-api/sequence.rst:142 msgid "" "As a CPython implementation detail, if *o* is already a sequence or list, it " "will be returned." msgstr "" +"Como detalhe de implementação de CPython, se *o* já for uma sequência ou " +"lista, ele será retornado." #: ../../c-api/sequence.rst:148 msgid "" -"Returns the length of *o*, assuming that *o* was returned by :c:func:" -"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be " -"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." +"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 "" +"Retorna o comprimento de *o*, presumindo que *o* foi retornado " +"por :c:func:`PySequence_Fast` e que *o* não seja ``NULL``. O tamanho também " +"pode ser obtido ao chamar :c:func:`PySequence_Size` em *o*, " +"mas :c:func:`PySequence_Fast_GET_SIZE` é mais rápida, ao supor que *o* é uma " +"lista ou tupla." #: ../../c-api/sequence.rst:157 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." +"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 "" +"Retorna o elemento *i* de *o*, presumindo que *o* foi retornado " +"por :c:func:`PySequence_Fast`, que *o* seja ``NULL``, e que *i* esteja nos " +"limites." #: ../../c-api/sequence.rst:163 msgid "" "Return the underlying array of PyObject pointers. Assumes that *o* was " "returned by :c:func:`PySequence_Fast` and *o* is not ``NULL``." msgstr "" +"Retorna o vetor subjacente de ponteiros PyObject. Presume que *o* foi " +"retornado por :c:func:`PySequence_Fast` e que *o* não seja ``NULL``." #: ../../c-api/sequence.rst:166 msgid "" @@ -224,14 +263,21 @@ msgid "" "So, only use the underlying array pointer in contexts where the sequence " "cannot change." msgstr "" +"Note que, se uma lista for redimensionada, a realocação poderá reposicionar " +"o vetor de itens. Portanto, só use o ponteiro de vetor subjacente em " +"contextos onde a sequência não mudará." #: ../../c-api/sequence.rst:173 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." +"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 "" +"Retorna o elemento *i* de *o*, ou ``NULL`` em caso de falha. É uma forma " +"mais rápida de :c:func:`PySequence_GetItem`, mas sem verificar " +"se :c:func:`PySequence_Check` em *o* é verdadeiro e sem ajustar índices " +"negativos." #: ../../c-api/sequence.rst:21 ../../c-api/sequence.rst:123 msgid "built-in function" diff --git a/c-api/set.po b/c-api/set.po index 9db139a33..ba96e03ed 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -1,27 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Vitor Buxbaum Orlandi, 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-05 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -33,62 +31,56 @@ msgstr "Objeto Set" 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`)." +"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 "" -"Esta seção detalha a API pública para os objetos :class:`set` e :class:" -"`frozenset`. Qualquer funcionalidade não listada abaixo é melhor acessada " -"usando o protocolo de objeto abstrato (incluindo :c:func:" -"`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:" -"`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:" -"`PyObject_Print` e :c:func:`PyObject_GetIter`) ou o protocolo abstrato de " -"número (incluindo :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` e :c:func:" -"`PyNumber_InPlaceXor`)." +"Esta seção detalha a API pública para os objetos :class:`set` " +"e :class:`frozenset`. Qualquer funcionalidade não listada abaixo é melhor " +"acessada usando o protocolo de objeto abstrato " +"(incluindo :c:func:`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:`PyObject_Print` " +"e :c:func:`PyObject_GetIter`) ou o protocolo abstrato de número " +"(incluindo :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` " +"e :c:func:`PyNumber_InPlaceXor`)." #: ../../c-api/set.rst:29 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 " +"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 "" "Este subtipo de :c:type:`PyObject` é usado para manter os dados internos " -"para ambos os objetos :class:`set` e :class:`frozenset`. É como um :c:type:" -"`PyDictObject` em que tem um tamanho fixo para conjuntos pequenos (muito " -"parecido com o armazenamento de tupla) e apontará para um bloco de memória " -"de tamanho variável separado para conjuntos de tamanho médio e grande (muito " -"parecido com lista armazenamento). Nenhum dos campos desta estrutura deve " -"ser considerado público e todos estão sujeitos a alterações. Todo o acesso " -"deve ser feito por meio da API documentada, em vez de manipular os valores " -"na estrutura." +"para ambos os objetos :class:`set` e :class:`frozenset`. É como " +"um :c:type:`PyDictObject` em que tem um tamanho fixo para conjuntos pequenos " +"(muito parecido com o armazenamento de tupla) e apontará para um bloco de " +"memória de tamanho variável separado para conjuntos de tamanho médio e " +"grande (muito parecido com lista armazenamento). Nenhum dos campos desta " +"estrutura deve ser considerado público e todos estão sujeitos a alterações. " +"Todo o acesso deve ser feito por meio da API documentada, em vez de " +"manipular os valores na estrutura." #: ../../c-api/set.rst:40 msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the Python :class:" -"`set` type." +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :class:`set` type." msgstr "" -"Essa é uma instância de :c:type:`PyTypeObject` representando o tipo Python :" -"class:`set`" +"Essa é uma instância de :c:type:`PyTypeObject` representando o tipo " +"Python :class:`set`" #: ../../c-api/set.rst:46 msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the Python :class:" -"`frozenset` type." +"This is an instance of :c:type:`PyTypeObject` representing the " +"Python :class:`frozenset` type." msgstr "" -"Esta é uma instância de :c:type:`PyTypeObject` representando o tipo Python :" -"class:`frozenset`." +"Esta é uma instância de :c:type:`PyTypeObject` representando o tipo " +"Python :class:`frozenset`." #: ../../c-api/set.rst:49 msgid "" @@ -120,8 +112,9 @@ 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 "" -"Retorna verdadeiro se *p* for um objeto :class:`set`, um objeto :class:" -"`frozenset` ou uma instância de um subtipo. Esta função sempre tem sucesso." +"Retorna verdadeiro se *p* for um objeto :class:`set`, um " +"objeto :class:`frozenset` ou uma instância de um subtipo. Esta função sempre " +"tem sucesso." #: ../../c-api/set.rst:70 msgid "" @@ -136,9 +129,9 @@ 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 "" -"Retorna verdadeiro se *p* for um objeto :class:`set` ou um objeto :class:" -"`frozenset`, mas não uma instância de um subtipo. Esta função sempre tem " -"sucesso." +"Retorna verdadeiro se *p* for um objeto :class:`set` ou um " +"objeto :class:`frozenset`, mas não uma instância de um subtipo. Esta função " +"sempre tem sucesso." #: ../../c-api/set.rst:83 msgid "" @@ -166,8 +159,8 @@ msgstr "" 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." +"Return the new set on success or ``NULL`` on failure. " +"Raise :exc:`TypeError` if *iterable* is not actually iterable." msgstr "" "Retorna uma nova :class:`frozenset` contendo objetos retornados pelo " "iterável *iterable*. O *iterable* pode ser ``NULL`` para criar um novo " @@ -177,17 +170,17 @@ msgstr "" #: ../../c-api/set.rst:104 msgid "" -"The following functions and macros are available for instances of :class:" -"`set` or :class:`frozenset` or instances of their subtypes." +"The following functions and macros are available for instances " +"of :class:`set` or :class:`frozenset` or instances of their subtypes." msgstr "" -"As seguintes funções e macros estão disponíveis para instâncias de :class:" -"`set` ou :class:`frozenset` ou instâncias de seus subtipos." +"As seguintes funções e macros estão disponíveis para instâncias " +"de :class:`set` ou :class:`frozenset` ou instâncias de seus subtipos." #: ../../c-api/set.rst:112 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." +"to ``len(anyset)``. Raises a :exc:`SystemError` if *anyset* is not " +"a :class:`set`, :class:`frozenset`, or an instance of a subtype." msgstr "" "Retorna o comprimento de um objeto :class:`set` ou :class:`frozenset`. " "Equivalente a ``len(anyset)``. Levanta um :exc:`SystemError` se *anyset* não " @@ -202,16 +195,16 @@ 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." +"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 "" "Retorna ``1`` se encontrado, ``0`` se não encontrado, e ``-1`` se um erro é " "encontrado. Ao contrário do método Python :meth:`~object.__contains__`, esta " "função não converte automaticamente conjuntos não hasheáveis em frozensets " "temporários. Levanta um :exc:`TypeError` se a *key* não for hasheável. " -"Levanta :exc:`SystemError` se *anyset* não é um :class:`set`, :class:" -"`frozenset`, ou uma instância de um subtipo." +"Levanta :exc:`SystemError` se *anyset* não é " +"um :class:`set`, :class:`frozenset`, ou uma instância de um subtipo." #: ../../c-api/set.rst:133 msgid "" @@ -220,8 +213,8 @@ msgid "" "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." +"grow. Raise a :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." msgstr "" "Adiciona *key* a uma instância de :class:`set`. Também funciona com " "instâncias de :class:`frozenset` (como :c:func:`PyTuple_SetItem`, ele pode " @@ -229,8 +222,8 @@ msgstr "" "antes que eles sejam expostos a outro código). Retorna ``0`` em caso de " "sucesso ou ``-1`` em caso de falha. Levanta um :exc:`TypeError` se a *key* " "não for hasheável. Levanta uma :exc:`MemoryError` se não houver espaço para " -"crescer. Levanta uma :exc:`SystemError` se *set* não for uma instância de :" -"class:`set` ou seu subtipo." +"crescer. Levanta uma :exc:`SystemError` se *set* não for uma instância " +"de :class:`set` ou seu subtipo." #: ../../c-api/set.rst:142 msgid "" @@ -247,16 +240,18 @@ msgid "" "``-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:`~frozenset.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." +"automatically convert unhashable sets into temporary frozensets. " +"Raise :exc:`SystemError` if *set* is not an instance of :class:`set` or its " +"subtype." msgstr "" "Retorna ``1`` se encontrado e removido, ``0`` se não encontrado (nenhuma " -"ação realizada) e ``-1`` se um erro for encontrado. Não levanta :exc:" -"`KeyError` para chaves ausentes. Levanta uma :exc:`TypeError` se a *key* não " -"for hasheável. Ao contrário do método Python :meth:`~frozenset.discard`, " -"esta função não converte automaticamente conjuntos não hasheáveis em " -"frozensets temporários. Levanta :exc:`SystemError` se *set* não é uma " -"instância de :class:`set` ou seu subtipo." +"ação realizada) e ``-1`` se um erro for encontrado. Não " +"levanta :exc:`KeyError` para chaves ausentes. Levanta uma :exc:`TypeError` " +"se a *key* não for hasheável. Ao contrário do método " +"Python :meth:`~frozenset.discard`, esta função não converte automaticamente " +"conjuntos não hasheáveis em frozensets temporários. " +"Levanta :exc:`SystemError` se *set* não é uma instância de :class:`set` ou " +"seu subtipo." #: ../../c-api/set.rst:158 msgid "" @@ -273,8 +268,8 @@ msgstr "" #: ../../c-api/set.rst:166 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." +"``-1`` and raise :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." msgstr "" "Esvazia um conjunto existente de todos os elementos. Retorna ``0`` em caso " "de sucesso. Retorna ``-1`` e levanta :exc:`SystemError` se *set* não for uma " diff --git a/c-api/slice.po b/c-api/slice.po index dc0a315b5..58ca5130b 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Claudio Rogerio Carvalho Filho , 2021 -# Rafael Fontenelle , 2023 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-12 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Rafael Fontenelle , 2023\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -49,16 +48,22 @@ 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. Return ``NULL`` if " -"the new object could not be allocated." +"``None`` will be used for the corresponding attribute." msgstr "" "Retorna um novo objeto fatia com os valores fornecidos. Os parâmetros " "*start*, *stop* e *step* são usados como os valores dos atributos do objeto " "fatia com os mesmos nomes. Qualquer um dos valores pode ser ``NULL``, caso " -"em que ``None`` será usado para o atributo correspondente. Retorna ``NULL`` " -"se o novo objeto não puder ser alocado." +"em que ``None`` será usado para o atributo correspondente." + +#: ../../c-api/slice.rst:28 +msgid "" +"Return ``NULL`` with an exception set if the new object could not be " +"allocated." +msgstr "" +"Retorna ``NULL`` com uma exceção definida se o novo objeto não puder ser " +"alocado." -#: ../../c-api/slice.rst:32 +#: ../../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* " @@ -68,7 +73,7 @@ msgstr "" "*slice*, presumindo uma sequência de comprimento *length*. Trata índices " "maiores que *length* como erros." -#: ../../c-api/slice.rst:36 +#: ../../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 " @@ -79,17 +84,17 @@ msgstr "" "convertido para um inteiro, neste caso ``-1`` é retornado com uma exceção " "definida)." -#: ../../c-api/slice.rst:40 +#: ../../c-api/slice.rst:42 msgid "You probably do not want to use this function." msgstr "Você provavelmente não deseja usar esta função." -#: ../../c-api/slice.rst:42 ../../c-api/slice.rst:73 +#: ../../c-api/slice.rst:44 ../../c-api/slice.rst:75 msgid "" "The parameter type for the *slice* parameter was ``PySliceObject*`` before." msgstr "" "O tipo de parâmetro para o parâmetro *slice* era antes de ``PySliceObject*``." -#: ../../c-api/slice.rst:49 +#: ../../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 " @@ -103,27 +108,51 @@ msgstr "" "*slicelength*. Índices fora dos limites são cortados de maneira consistente " "com o tratamento de fatias normais." -#: ../../c-api/slice.rst:55 -msgid "Returns ``0`` on success and ``-1`` on error with exception set." +#: ../../c-api/slice.rst:57 +msgid "Return ``0`` on success and ``-1`` on error with an exception set." msgstr "" -"Retorna ``0`` em caso de sucesso e ``-1`` em caso de erro com exceção " +"Retorna ``0`` em caso de sucesso e ``-1`` em caso de erro com uma exceção " "definida." -#: ../../c-api/slice.rst:58 +#: ../../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 ::" +"should be replaced by a combination of :c:func:`PySlice_Unpack` " +"and :c:func:`PySlice_AdjustIndices` where ::" msgstr "" "Esta função não é considerada segura para sequências redimensionáveis. Sua " -"invocação deve ser substituída por uma combinação de :c:func:" -"`PySlice_Unpack` e :c:func:`PySlice_AdjustIndices` sendo ::" +"invocação deve ser substituída por uma combinação " +"de :c:func:`PySlice_Unpack` e :c:func:`PySlice_AdjustIndices` sendo ::" + +#: ../../c-api/slice.rst:64 +msgid "" +"if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) " +"< 0) {\n" +" // return error\n" +"}" +msgstr "" +"if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) " +"< 0) {\n" +" // retorna erro\n" +"}" -#: ../../c-api/slice.rst:66 +#: ../../c-api/slice.rst:68 msgid "is replaced by ::" msgstr "substituído por ::" -#: ../../c-api/slice.rst:77 +#: ../../c-api/slice.rst:70 +msgid "" +"if (PySlice_Unpack(slice, &start, &stop, &step) < 0) {\n" +" // return error\n" +"}\n" +"slicelength = PySlice_AdjustIndices(length, &start, &stop, step);" +msgstr "" +"if (PySlice_Unpack(slice, &start, &stop, &step) < 0) {\n" +" // retorna erro\n" +"}\n" +"slicelength = PySlice_AdjustIndices(length, &start, &stop, step);" + +#: ../../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:`!" @@ -137,17 +166,17 @@ msgstr "" "usando :c:func:`!PySlice_Unpack` e :c:func:`!PySlice_AdjustIndices`. Os " "argumentos *start*, *stop* e *step* são avaliados mais de uma vez." -#: ../../c-api/slice.rst:84 +#: ../../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 "" "Se ``Py_LIMITED_API`` estiver definido para um valor menor que " -"``0x03050400`` ou entre ``0x03060000`` e ``0x03060100`` (não incluso), :c:" -"func:`!PySlice_GetIndicesEx` é uma função descontinuada." +"``0x03050400`` ou entre ``0x03060000`` e ``0x03060100`` (não " +"incluso), :c:func:`!PySlice_GetIndicesEx` é uma função descontinuada." -#: ../../c-api/slice.rst:92 +#: ../../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 " @@ -162,11 +191,13 @@ msgstr "" "``PY_SSIZE_T_MIN``, e silenciosamente aumenta os valores de intermediário " "menores que ``-PY_SSIZE_T_MAX`` para ``-PY_SSIZE_T_MAX``." -#: ../../c-api/slice.rst:98 -msgid "Return ``-1`` on error, ``0`` on success." -msgstr "Retorna ``-1`` em caso de erro, ``0`` em caso de sucesso." +#: ../../c-api/slice.rst:100 +msgid "Return ``-1`` with an exception set on error, ``0`` on success." +msgstr "" +"Retorna ``-1`` com uma exceção definida em caso de erro, ``0`` em caso de " +"sucesso." -#: ../../c-api/slice.rst:105 +#: ../../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 " @@ -176,7 +207,7 @@ msgstr "" "comprimento especificado. Índices fora dos limites são cortados de maneira " "consistente com o tratamento de fatias normais." -#: ../../c-api/slice.rst:109 +#: ../../c-api/slice.rst:111 msgid "" "Return the length of the slice. Always successful. Doesn't call Python " "code." @@ -184,20 +215,28 @@ msgstr "" "Retorna o comprimento da fatia. Sempre bem-sucedido. Não chama o código " "Python." -#: ../../c-api/slice.rst:116 +#: ../../c-api/slice.rst:118 msgid "Ellipsis Object" msgstr "Objeto Ellipsis" -#: ../../c-api/slice.rst:121 +#: ../../c-api/slice.rst:123 +msgid "" +"The type of Python :const:`Ellipsis` object. Same " +"as :class:`types.EllipsisType` in the Python layer." +msgstr "" +"O tipo do objeto Python :const:`Ellipsis`. O mesmo " +"que :class:`types.EllipsisType` na camada Python." + +#: ../../c-api/slice.rst:129 msgid "" -"The Python ``Ellipsis`` object. This object has no methods. Like :c:data:" -"`Py_None`, it is an `immortal `_. " -"singleton object." +"The Python ``Ellipsis`` object. This object has no methods. " +"Like :c:data:`Py_None`, it is an `immortal `_. singleton object." msgstr "" -"O objeto Python ``Ellipsis``. Este objeto não tem métodos. Como :c:data:" -"`Py_None`, é um objeto singleton `imortal `_." +"O objeto Python ``Ellipsis``. Este objeto não tem métodos. " +"Como :c:data:`Py_None`, é um objeto singleton `imortal `_." -#: ../../c-api/slice.rst:125 +#: ../../c-api/slice.rst:133 msgid ":c:data:`Py_Ellipsis` is immortal." msgstr ":c:data:`Py_Ellipsis` é imortal." diff --git a/c-api/stable.po b/c-api/stable.po index 30664ee76..e57e86b8f 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -1,26 +1,25 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2024, Python Software Foundation +# Copyright (C) 2001-2026, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: -# Rafael Fontenelle , 2023 -# Adorilson Bezerra , 2024 +# Rafael Fontenelle , 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-22 14:14+0000\n" -"PO-Revision-Date: 2021-06-28 00:50+0000\n" -"Last-Translator: Adorilson Bezerra , 2024\n" +"POT-Creation-Date: 2026-10-21 21:07+0000\n" +"PO-Revision-Date: 2025-07-18 19:57+0000\n" +"Last-Translator: Rafael Fontenelle , 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" @@ -44,12 +43,12 @@ msgstr "" #: ../../c-api/stable.rst:15 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." +"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 "" -"A Interface Binário de Aplicação (ABI) do CPython é compatível para frente e " +"A Interface Binária de Aplicação (ABI) do CPython é compatível para frente e " "para trás através de uma versão menor (se elas forem compiladas da mesma " "maneira; veja :ref:`stable-abi-platform` abaixo). Portanto, o código " "compilado para Python 3.10.0 funcionará em 3.10.8 e vice-versa, mas " @@ -87,15 +86,15 @@ msgstr "Elas são discutidas em mais detalhes abaixo." 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." +"use this API, consider reaching out to `CPython developers `_ to discuss adding public API for " +"your use case." msgstr "" "Nomes prefixados por um sublinhado, como ``_Py_InternalState``, são APIs " "privadas que podem ser alteradas sem aviso prévio, mesmo em lançamentos de " "correção. Se você precisa usar essa API, considere entrar em contato com os " -"`desenvolvedores do CPython `_ para discutir a adição de uma API pública para o seu caso de uso." +"`desenvolvedores do CPython `_ para discutir a adição de uma API pública para o seu caso de uso." #: ../../c-api/stable.rst:40 msgid "Unstable C API" @@ -149,14 +148,14 @@ msgstr "API C Limitada" #: ../../c-api/stable.rst:67 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 work with " -"multiple versions of Python. Contents of the Limited API are :ref:`listed " +"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 "" "Python 3.2 introduziu a *API Limitada*, um subconjunto da API C do Python. " -"Extensões que apenas usam o Limited API podem ser compiladas uma vez e " -"funcionar com várias versões do Python. Os conteúdos da API Limitada estão :" -"ref:`listados abaixo `." +"Extensões que apenas usam o Limited API podem ser compiladas uma vez e ser " +"carregadas em várias versões do Python. Os conteúdos da API Limitada " +"estão :ref:`listados abaixo `." #: ../../c-api/stable.rst:74 msgid "" @@ -170,15 +169,14 @@ msgstr "" 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 work without recompilation with all Python 3 releases from " -"the specified one onward, and can use Limited API introduced up to that " -"version." +"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 "" "Defina ``Py_LIMITED_API`` com o valor de :c:macro:`PY_VERSION_HEX` " "correspondente à versão mais baixa do Python que sua extensão suporta. A " -"extensão funcionará sem recompilação com todas as versões do Python 3 a " -"partir da especificada e poderá usar a API Limitada introduzida até aquela " -"versão." +"extensão terá compatibilidade com a ABI de todas as versões do Python 3 a " +"partir daquela especificada, e poderá usar a API Limitada introduzida até " +"aquela versão." #: ../../c-api/stable.rst:83 msgid "" @@ -206,12 +204,27 @@ msgstr "ABI Estável" #: ../../c-api/stable.rst:96 msgid "" "To enable this, Python provides a *Stable ABI*: a set of symbols that will " -"remain compatible across Python 3.x versions." +"remain ABI-compatible across Python 3.x versions." msgstr "" -"Para habilitar isso, o Python fornece uma *ABI estável*: um conjunto de " -"símbolos que permanecerão compatíveis em todas as versões do Python 3.x." +"Para habilitar isso, o Python fornece uma *ABI Estável*: um conjunto de " +"símbolos que permanecerão compatíveis com ABI em todas as versões do Python " +"3.x." -#: ../../c-api/stable.rst:99 +#: ../../c-api/stable.rst:101 +msgid "" +"The 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. See Python's Backwards Compatibility Policy (:pep:`387`) for " +"details." +msgstr "" +"O ABI Estável previne problemas de ABI, como erros de ligador devido a " +"símbolos ausentes ou corrupção de dados devido a alterações em layouts de " +"estrutura ou assinaturas de função. No entanto, outras alterações no Python " +"podem alterar o *comportamento* das extensões. Veja a Política de " +"Retrocompatibilidade do Python (:pep:`387`) para detalhes." + +#: ../../c-api/stable.rst:107 msgid "" "The Stable ABI contains symbols exposed in the :ref:`Limited API `, but also other ones – for example, functions necessary to support " @@ -221,17 +234,17 @@ msgstr "" "api>`, mas também outros -- por exemplo, funções necessárias para suportar " "versões mais antigas da API Limitada." -#: ../../c-api/stable.rst:103 +#: ../../c-api/stable.rst:111 msgid "" "On Windows, extensions that use the Stable ABI should be linked against " -"``python3.dll`` rather than a version-specific library such as ``python39." -"dll``." +"``python3.dll`` rather than a version-specific library such as " +"``python39.dll``." msgstr "" "No Windows, as extensões que usam a ABI Estável devem ser vinculadas a " "``python3.dll`` em vez de uma biblioteca específica de versão, como " "``python39.dll``." -#: ../../c-api/stable.rst:107 +#: ../../c-api/stable.rst:115 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 " @@ -247,7 +260,7 @@ msgstr "" "com a API Limitada 3.10+ não sejam instaladas em versões mais baixas do " "Python." -#: ../../c-api/stable.rst:114 +#: ../../c-api/stable.rst:122 msgid "" "All functions in the Stable ABI are present as functions in Python's shared " "library, not solely as macros. This makes them usable from languages that " @@ -257,11 +270,11 @@ msgstr "" "compartilhada do Python, não apenas como macros. Isso as torna utilizáveis " "em linguagens que não utilizam o pré-processador C." -#: ../../c-api/stable.rst:120 +#: ../../c-api/stable.rst:128 msgid "Limited API Scope and Performance" msgstr "Escopo e Desempenho da API Limitada" -#: ../../c-api/stable.rst:122 +#: ../../c-api/stable.rst:130 msgid "" "The goal for the Limited API is to allow everything that is possible with " "the full C API, but possibly with a performance penalty." @@ -269,7 +282,7 @@ msgstr "" "O objetivo da API Limitada é permitir tudo o que é possível com a API C " "completa, mas possivelmente com uma penalidade de desempenho." -#: ../../c-api/stable.rst:125 +#: ../../c-api/stable.rst:133 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 " @@ -280,7 +293,7 @@ msgstr "" "mais rápida porque pode depender de detalhes de implementação específicos da " "versão do objeto da lista." -#: ../../c-api/stable.rst:130 +#: ../../c-api/stable.rst:138 msgid "" "Without ``Py_LIMITED_API`` defined, some C API functions are inlined or " "replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, " @@ -292,7 +305,7 @@ msgstr "" "desativa esse inline, permitindo estabilidade à medida que as estruturas de " "dados do Python são aprimoradas, mas possivelmente reduzindo o desempenho." -#: ../../c-api/stable.rst:135 +#: ../../c-api/stable.rst:143 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 " @@ -309,16 +322,17 @@ msgstr "" "disponível -- por exemplo, para pré-lançamentos de uma próxima versão do " "Python." -#: ../../c-api/stable.rst:144 +#: ../../c-api/stable.rst:152 msgid "Limited API Caveats" msgstr "Limitações da API Limitada" -#: ../../c-api/stable.rst:146 +#: ../../c-api/stable.rst:154 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." +"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 "" "Observe que compilar com ``Py_LIMITED_API`` *não* é uma garantia completa de " "que o código esteja em conformidade com a :ref:`API Limitada