diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index e676ff624..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "rffontenelle" - commit-message: - prefix: "gha" - groups: - github-actions: - patterns: - - "*" - - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "weekly" - assignees: - - "rffontenelle" - commit-message: - prefix: "pip" - groups: - pip-packages: - patterns: - - "*" diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml deleted file mode 100644 index 29d19993a..000000000 --- a/.github/workflows/check.yml +++ /dev/null @@ -1,218 +0,0 @@ -# Run some tests in the Python Doc translations - -name: Check - -on: - workflow_dispatch: - inputs: - version: - description: "Branch name corresponding to a Python version" - required: true - type: string - tx_project: - description: "Name of the Transifex translation project" - required: true - type: string - workflow_call: - inputs: - version: - description: "Branch name corresponding to a Python version" - required: true - type: string - tx_project: - description: "Name of the Transifex translation project" - required: true - type: string - secrets: - TELEGRAM_TOKEN: - description: "Token required for interacting with Telegram API" - required: false - TELEGRAM_TO: - description: "Account ID that will receive the telegram notification" - required: false - -permissions: - contents: read - -env: - PYDOC_LANGUAGE: pt_BR - PYDOC_REPO: ${{ github.server_url }}/${{ github.repository }} - PYDOC_VERSION: ${{ inputs.version }} - -jobs: - - # Build documentation handling warnings as errors in both HTML and PDF. - # If success, upload built docs as artifact. - # If failure in HTML, notify telegram and upload logs. - build: - name: Build docs - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - format: [ html, latex, epub ] - steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v6 - with: - python-version: ${{ inputs.version }} - cache: pip - allow-prereleases: true - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: setup - run: ./scripts/setup.sh - - - name: Install APT dependencies - if: matrix.format == 'latex' - run: sudo apt update -y && sudo apt install librsvg2-bin -y - - - name: Add problem matcher - uses: sphinx-doc/github-problem-matcher@v1.1 - - - name: Build docs - id: build - run: ./scripts/build.sh ${{ matrix.format }} - - - name: Prepare notification (only on error) - if: always() && steps.build.outcome == 'failure' && matrix.format == 'html' - id: prepare - run: | - scripts/prepmsg.sh logs/sphinxwarnings-${{ matrix.format }}.txt logs/notify.txt - cat logs/notify.txt - env: - GITHUB_JOB: ${{ github.job }} - GITHUB_RUN_ID: ${{ github.run_id }} - - - name: Notify via Telegram - if: always() && steps.prepare.outcome == 'success' && github.event_name == 'schedule' && inputs.tx_project == 'python-newest' - uses: appleboy/telegram-action@v1.0.1 - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - format: markdown - disable_web_page_preview: true - message_file: logs/notify.txt - - - name: Upload artifact - log files - if: always() && steps.build.outcome == 'failure' - uses: actions/upload-artifact@v7 - with: - name: logs-${{ inputs.version }}-${{ matrix.format }} - path: logs/* - - - name: Upload artifact - docs - if: always() && steps.build.outcome == 'success' - uses: actions/upload-artifact@v7 - with: - name: python-docs-pt-br-${{ inputs.version }}-${{ matrix.format }} - path: cpython/Doc/build/${{ matrix.format }} - - # Build Python docs in PDF format and make available for download. - output-pdf: - name: Build docs (pdf) - runs-on: ubuntu-latest - needs: [ 'build' ] - steps: - - uses: actions/download-artifact@v8 - with: - name: python-docs-pt-br-${{ inputs.version }}-latex - - run: sudo apt-get update - - run: sudo apt-get install -y latexmk texlive-xetex fonts-freefont-otf xindy texlive-lang-portuguese - - run: make - - uses: actions/upload-artifact@v7 - if: always() - with: - name: python-docs-pt-br-${{ inputs.version }}-pdf - path: ./*.pdf - - # Run sphinx-lint to find wrong reST syntax in PO files. Always store logs. - # If issues are found, notify telegram and upload logs. - lint: - name: Lint translations - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 5 - - - name: Set up Python 3 - uses: actions/setup-python@v6 - with: - python-version: ${{ inputs.version }} - cache: pip - allow-prereleases: true - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: setup - run: ./scripts/setup.sh - - - name: Add problem matcher - uses: rffontenelle/sphinx-lint-problem-matcher@v1.0.0 - - - name: lint translations files - id: lint - run: ./scripts/lint.sh - - - name: Prepare notification (only on error) - if: always() && steps.lint.outcome == 'failure' - id: prepare - run: | - scripts/prepmsg.sh logs/sphinxlint.txt logs/notify.txt - cat logs/notify.txt - env: - GITHUB_JOB: ${{ github.job }} - GITHUB_RUN_ID: ${{ github.run_id }} - - - name: Notify via Telegram - if: always() && steps.prepare.outcome == 'success' && github.event_name == 'schedule' && inputs.tx_project == 'python-newest' - uses: appleboy/telegram-action@v1.0.1 - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - format: markdown - disable_web_page_preview: true - message_file: logs/notify.txt - - - name: Upload artifact - log files - if: always() && steps.lint.outcome == 'failure' - uses: actions/upload-artifact@v7 - with: - name: ${{ inputs.version }}-lint-logs - path: logs/* - - - # Check for zero-width space charcters in translations. - # These are known to come together with (some?) machine translation like Google translate, - # and - as one of the consequences - it may avoid Transifex glossary matching (e.g. variáveis) - zero-width-space: - name: Check for zero-width space characters - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - with: - ref: ${{ inputs.version }} - - - name: Make sure the repository is up to date - if: github.event_name != 'pull_request' - run: git pull --rebase - - - name: Remove zero-width space characters - run: | - sed -i 's/\xe2\x80\x8b//g' *.po **/*.po - # Undo removal from where we should not - sed -i 's|`````|``​`​``|' reference/lexical_analysis.po - - - name: Show difference (error if there is any) - run: | - git diff --exit-code --color-words diff --git a/.github/workflows/python-310.yml b/.github/workflows/python-310.yml deleted file mode 100644 index 2cb3a2d71..000000000 --- a/.github/workflows/python-310.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: python-310 - -on: - workflow_dispatch: - schedule: - - cron: '15 0 * * *' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: '3.10' - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: '3.10' - secrets: inherit diff --git a/.github/workflows/python-311.yml b/.github/workflows/python-311.yml deleted file mode 100644 index a62785b3d..000000000 --- a/.github/workflows/python-311.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: python-311 - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: '3.11' - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: '3.11' - secrets: inherit diff --git a/.github/workflows/python-312.yml b/.github/workflows/python-312.yml deleted file mode 100644 index 2b2b26072..000000000 --- a/.github/workflows/python-312.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: python-312 - -on: - workflow_dispatch: - schedule: - - cron: '45 23 * * *' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: '3.12' - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: '3.12' - secrets: inherit diff --git a/.github/workflows/python-313.yml b/.github/workflows/python-313.yml deleted file mode 100644 index 85340a6bd..000000000 --- a/.github/workflows/python-313.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: python-313 - -on: - workflow_dispatch: - schedule: - - cron: '30 23 * * *' - pull_request: - branches: - - main - - '3.13' - push: - branches: - - main - - '3.13' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: 3.13 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: 3.13 - secrets: inherit diff --git a/.github/workflows/python-314.yml b/.github/workflows/python-314.yml deleted file mode 100644 index d800e9529..000000000 --- a/.github/workflows/python-314.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: python-314 - -on: - workflow_dispatch: - schedule: - - cron: '15 23 * * *' - pull_request: - branches: - - main - - '3.14' - push: - branches: - - main - - '3.14' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: python-314 - version: 3.14 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: python-314 - version: 3.14 - secrets: inherit diff --git a/.github/workflows/python-315.yml b/.github/workflows/python-315.yml deleted file mode 100644 index c1413a42a..000000000 --- a/.github/workflows/python-315.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: python-315 - -on: - workflow_dispatch: - schedule: - - cron: '0 23 * * *' - pull_request: - branches: - - main - - '3.15' - push: - branches: - - main - - '3.15' - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: python-newest - version: 3.15 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: python-newest - version: 3.15 - secrets: inherit diff --git a/.github/workflows/python-37.yml b/.github/workflows/python-37.yml deleted file mode 100644 index 2b1cadd25..000000000 --- a/.github/workflows/python-37.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: python-37 - -on: - workflow_dispatch: - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: 3.7 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: 3.7 - secrets: inherit diff --git a/.github/workflows/python-38.yml b/.github/workflows/python-38.yml deleted file mode 100644 index 50cc843c1..000000000 --- a/.github/workflows/python-38.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: python-38 - -on: - workflow_dispatch: - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: 3.8 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: 3.8 - secrets: inherit diff --git a/.github/workflows/python-39.yml b/.github/workflows/python-39.yml deleted file mode 100644 index a49ac9dbf..000000000 --- a/.github/workflows/python-39.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: python-39 - -on: - workflow_dispatch: - -jobs: - sync: - uses: ./.github/workflows/sync.yml - with: - tx_project: ${{ github.workflow }} - version: 3.9 - secrets: inherit - check: - uses: ./.github/workflows/check.yml - needs: sync - with: - tx_project: ${{ github.workflow }} - version: 3.9 - secrets: inherit diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml deleted file mode 100644 index 7bf2a0c96..000000000 --- a/.github/workflows/sync.yml +++ /dev/null @@ -1,166 +0,0 @@ -name: Sync - -on: - workflow_call: - inputs: - version: - description: "Branch name corresponding to a Python version" - required: true - type: string - tx_project: - description: "Name of the Transifex translation project" - required: true - type: string - secrets: - TX_TOKEN: - description: "Token required for interacting with Transifex API" - required: false - -env: - PYDOC_LANGUAGE: pt_BR - PYDOC_TX_PROJECT: ${{ inputs.tx_project }} - PYDOC_VERSION: ${{ inputs.version }} - PYDOC_LANG_DIR: ${{ inputs.version }} - TX_CLI_VERSION: '1.6.17' - -jobs: - sync: - runs-on: ubuntu-latest - permissions: - contents: read - steps: - - # 1- Set up environment - - - name: Check out this repository - uses: actions/checkout@v6 - - - name: Checkout this repository ${{ env.PYDOC_VERSION }} - uses: actions/checkout@v6 - with: - ref: ${{ env.PYDOC_VERSION }} - path: ${{ env.PYDOC_LANG_DIR }} - - - uses: actions/setup-python@v6 - with: - python-version: ${{ inputs.version }} - allow-prereleases: true - cache: 'pip' - pip-install: -r requirements.txt - - # 2- Install dependencies - - - name: Install Transifex CLI tool - run: | - cd /usr/local/bin - curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash -s -- v$TX_CLI_VERSION - - - name: Install APT dependencies - run: sudo apt update -y && sudo apt install gettext -y - - # 3- Pull translations - - - name: Generate updated .tx/config - if: ${{ contains(fromJSON('["schedule", "workflow_dispatch"]'), github.event_name) }} - run: python scripts/generate_txconfig.py -p ./${{ env.PYDOC_LANG_DIR }} ${{ env.PYDOC_TX_PROJECT }} - env: - TX_TOKEN: ${{ secrets.TX_TOKEN }} - - - name: Pull translations from Transifex - id: pull - if: ${{ contains(fromJSON('["schedule", "workflow_dispatch"]'), github.event_name) }} - run: | - # Clean up obsolete files - find ./${{ env.PYDOC_LANG_DIR }} -name '*.po' -exec rm {} \; - ./scripts/pull_translations.sh - env: - TX_TOKEN: ${{ secrets.TX_TOKEN }} - - - name: Merge translations from newer branch - if: inputs.tx_project != 'python-newest' # python-newest doesn't have a newer branch - run: | - newer_branch=${PYDOC_VERSION%%.*}.$((${PYDOC_VERSION##*.}+1)) - git clone --depth 1 --single-branch --branch $newer_branch https://github.com/python/python-docs-pt-br ${newer_branch}-dir - pomerge --from ./${newer_branch}-dir/{**/,}*.po --to ./${{ env.PYDOC_LANG_DIR }}/{**/,}*.po - rm -rf ./${newer_branch}-dir - - - name: powrap - if: steps.pull.outcome == 'success' - run: | - cd ./${{ env.PYDOC_LANG_DIR }} - powrap *.po **/*.po - - - name: Update statistics - if: always() - run: | - ./scripts/stats.py - git -C ./${{ env.PYDOC_LANG_DIR }} diff stats.json - env: - PYDOC_LANG_DIR: ${{ env.PYDOC_LANG_DIR }} - - - name: Update potodo.md - if: always() - run: | - ./scripts/potodo.sh - git -C ./${{ env.PYDOC_LANG_DIR }} diff potodo.md - env: - PYDOC_LANG_DIR: ${{ env.PYDOC_LANG_DIR }} - - - name: Upload translation artifacts - uses: actions/upload-artifact@v7 - with: - name: python-${{ env.PYDOC_VERSION }} - path: | - .tx/config - potodo.md - stats.json - *.po - **/*.po - - commit: - runs-on: ubuntu-latest - needs: sync - permissions: - contents: write - steps: - - # 1- Set up environment - - - name: Check out this repository - uses: actions/checkout@v6 - - - name: Checkout this repository ${{ env.PYDOC_VERSION }} - uses: actions/checkout@v6 - with: - ref: ${{ env.PYDOC_VERSION }} - path: ${{ env.PYDOC_LANG_DIR }} - - - uses: actions/setup-python@v6 - with: - python-version: ${{ inputs.version }} - allow-prereleases: true - cache: 'pip' - pip-install: -r requirements.txt - - # 2- Remove PO files and the download files (excluding obsolete) - - - name: Clean PO files - run: find ${{ env.PYDOC_LANG_DIR }} -name '*.po' | xargs -r rm - - - name: Download translation artifacts - uses: actions/download-artifact@v8 - with: - name: python-${{ env.PYDOC_VERSION }} - - # 3- Commit and push changed files depending on the event name - - - name: Commit - run: ./scripts/commit.sh - env: - PYDOC_LANG_DIR: ${{ env.PYDOC_LANG_DIR }} - - - name: Push - if: ${{ contains(fromJSON('["schedule", "workflow_dispatch"]'), github.event_name) }} - run: | - cd ./${{ env.PYDOC_LANG_DIR }} - git push diff --git a/.gitignore b/.gitignore index 6283eaf82..2a2ef4431 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,9 @@ -# Do not include content specific for versioned branches -*.po -*.po~ +# we want only the PO files *.mo -*.pot -stats.json -potodo.md -.tx/config +*.po~ -# Do not include virtual environments -venv/ -.venv/ +# cpython checkout shouldn't be added +cpython/ -# Do not include temporary directories -logs/ +# do not include potodo temporary file .potodo/ -cpython diff --git a/.tx/config b/.tx/config new file mode 100644 index 000000000..cbc749a0a --- /dev/null +++ b/.tx/config @@ -0,0 +1,4283 @@ +[main] +host = https://www.transifex.com + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:c-api--curses] +file_filter = c-api/curses.po +type = PO +minimum_perc = 0 +resource_name = c-api--curses +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314:r:c-api--extension-modules] +file_filter = c-api/extension-modules.po +type = PO +minimum_perc = 0 +resource_name = c-api--extension-modules +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:c-api--interp-lifecycle] +file_filter = c-api/interp-lifecycle.po +type = PO +minimum_perc = 0 +resource_name = c-api--interp-lifecycle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314:r:c-api--lifecycle] +file_filter = c-api/lifecycle.po +type = PO +minimum_perc = 0 +resource_name = c-api--lifecycle +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:c-api--monitoring] +file_filter = c-api/monitoring.po +type = PO +minimum_perc = 0 +resource_name = c-api--monitoring +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314:r:c-api--picklebuffer] +file_filter = c-api/picklebuffer.po +type = PO +minimum_perc = 0 +resource_name = c-api--picklebuffer +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:c-api--profiling] +file_filter = c-api/profiling.po +type = PO +minimum_perc = 0 +resource_name = c-api--profiling +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:c-api--subinterpreters] +file_filter = c-api/subinterpreters.po +type = PO +minimum_perc = 0 +resource_name = c-api--subinterpreters +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:c-api--synchronization] +file_filter = c-api/synchronization.po +type = PO +minimum_perc = 0 +resource_name = c-api--synchronization +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314:r:c-api--threads] +file_filter = c-api/threads.po +type = PO +minimum_perc = 0 +resource_name = c-api--threads +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:c-api--time] +file_filter = c-api/time.po +type = PO +minimum_perc = 0 +resource_name = c-api--time +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:c-api--tls] +file_filter = c-api/tls.po +type = PO +minimum_perc = 0 +resource_name = c-api--tls +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:deprecations--c-api-pending-removal-in-3_16] +file_filter = deprecations/c-api-pending-removal-in-3.16.po +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_16 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:deprecations--c-api-pending-removal-in-3_18] +file_filter = deprecations/c-api-pending-removal-in-3.18.po +type = PO +minimum_perc = 0 +resource_name = deprecations--c-api-pending-removal-in-3_18 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314:r:deprecations--pending-removal-in-3_17] +file_filter = deprecations/pending-removal-in-3.17.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_17 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:deprecations--pending-removal-in-3_18] +file_filter = deprecations/pending-removal-in-3.18.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_18 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:deprecations--pending-removal-in-3_19] +file_filter = deprecations/pending-removal-in-3.19.po +type = PO +minimum_perc = 0 +resource_name = deprecations--pending-removal-in-3_19 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:howto--a-conceptual-overview-of-asyncio] +file_filter = howto/a-conceptual-overview-of-asyncio.po +type = PO +minimum_perc = 0 +resource_name = howto--a-conceptual-overview-of-asyncio +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:howto--free-threading-extensions] +file_filter = howto/free-threading-extensions.po +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-extensions +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:howto--free-threading-python] +file_filter = howto/free-threading-python.po +type = PO +minimum_perc = 0 +resource_name = howto--free-threading-python +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:howto--remote_debugging] +file_filter = howto/remote_debugging.po +type = PO +minimum_perc = 0 +resource_name = howto--remote_debugging +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314:r:howto--timerfd] +file_filter = howto/timerfd.po +type = PO +minimum_perc = 0 +resource_name = howto--timerfd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314:r:improve-page] +file_filter = improve-page.po +type = PO +minimum_perc = 0 +resource_name = improve-page +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:improve-page-nojs] +file_filter = improve-page-nojs.po +type = PO +minimum_perc = 0 +resource_name = improve-page-nojs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314:r:library--annotationlib] +file_filter = library/annotationlib.po +type = PO +minimum_perc = 0 +resource_name = library--annotationlib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:library--asyncio-graph] +file_filter = library/asyncio-graph.po +type = PO +minimum_perc = 0 +resource_name = library--asyncio-graph +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:library--cmdlinelibs] +file_filter = library/cmdlinelibs.po +type = PO +minimum_perc = 0 +resource_name = library--cmdlinelibs +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:library--compression] +file_filter = library/compression.po +type = PO +minimum_perc = 0 +resource_name = library--compression +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:library--compression_zstd] +file_filter = library/compression.zstd.po +type = PO +minimum_perc = 0 +resource_name = library--compression_zstd +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314:r:library--concurrent_interpreters] +file_filter = library/concurrent.interpreters.po +type = PO +minimum_perc = 0 +resource_name = library--concurrent_interpreters +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:library--string_templatelib] +file_filter = library/string.templatelib.po +type = PO +minimum_perc = 0 +resource_name = library--string_templatelib +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:library--threadsafety] +file_filter = library/threadsafety.po +type = PO +minimum_perc = 0 +resource_name = library--threadsafety +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:using--android] +file_filter = using/android.po +type = PO +minimum_perc = 0 +resource_name = using--android +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314:r:using--ios] +file_filter = using/ios.po +type = PO +minimum_perc = 0 +resource_name = using--ios +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314:r:whatsnew--3_13] +file_filter = whatsnew/3.13.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_13 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314:r:whatsnew--3_14] +file_filter = whatsnew/3.14.po +type = PO +minimum_perc = 0 +resource_name = whatsnew--3_14 +replace_edited_strings = false +keep_translations = false + +[o:python-doc:p:python-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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-314: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/LICENSE b/LICENSE deleted file mode 100644 index 0e259d42c..000000000 --- a/LICENSE +++ /dev/null @@ -1,121 +0,0 @@ -Creative Commons Legal Code - -CC0 1.0 Universal - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS - PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM - THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED - HEREUNDER. - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator -and subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for -the purpose of contributing to a commons of creative, cultural and -scientific works ("Commons") that the public can reliably and without fear -of later claims of infringement build upon, modify, incorporate in other -works, reuse and redistribute as freely as possible in any form whatsoever -and for any purposes, including without limitation commercial purposes. -These owners may contribute to the Commons to promote the ideal of a free -culture and the further production of creative, cultural and scientific -works, or to gain reputation or greater distribution for their Work in -part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any -expectation of additional consideration or compensation, the person -associating CC0 with a Work (the "Affirmer"), to the extent that he or she -is an owner of Copyright and Related Rights in the Work, voluntarily -elects to apply CC0 to the Work and publicly distribute the Work under its -terms, with knowledge of his or her Copyright and Related Rights in the -Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not -limited to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, - communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or - likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse of data - in a Work; - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation - thereof, including any amended or successor version of such - directive); and -vii. other similar, equivalent or corresponding rights throughout the - world based on applicable law or treaty, and any national - implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention -of, applicable law, Affirmer hereby overtly, fully, permanently, -irrevocably and unconditionally waives, abandons, and surrenders all of -Affirmer's Copyright and Related Rights and associated claims and causes -of action, whether now known or unknown (including existing as well as -future claims and causes of action), in the Work (i) in all territories -worldwide, (ii) for the maximum duration provided by applicable law or -treaty (including future time extensions), (iii) in any current or future -medium and for any number of copies, and (iv) for any purpose whatsoever, -including without limitation commercial, advertising or promotional -purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each -member of the public at large and to the detriment of Affirmer's heirs and -successors, fully intending that such Waiver shall not be subject to -revocation, rescission, cancellation, termination, or any other legal or -equitable action to disrupt the quiet enjoyment of the Work by the public -as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason -be judged legally invalid or ineffective under applicable law, then the -Waiver shall be preserved to the maximum extent permitted taking into -account Affirmer's express Statement of Purpose. In addition, to the -extent the Waiver is so judged Affirmer hereby grants to each affected -person a royalty-free, non transferable, non sublicensable, non exclusive, -irrevocable and unconditional license to exercise Affirmer's Copyright and -Related Rights in the Work (i) in all territories worldwide, (ii) for the -maximum duration provided by applicable law or treaty (including future -time extensions), (iii) in any current or future medium and for any number -of copies, and (iv) for any purpose whatsoever, including without -limitation commercial, advertising or promotional purposes (the -"License"). The License shall be deemed effective as of the date CC0 was -applied by Affirmer to the Work. Should any part of the License for any -reason be judged legally invalid or ineffective under applicable law, such -partial invalidity or ineffectiveness shall not invalidate the remainder -of the License, and in such case Affirmer hereby affirms that he or she -will not (i) exercise any of his or her remaining Copyright and Related -Rights in the Work or (ii) assert any associated claims and causes of -action with respect to the Work, in either case contrary to Affirmer's -express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - b. Affirmer offers the Work as-is and makes no representations or - warranties of any kind concerning the Work, express, implied, - statutory or otherwise, including without limitation warranties of - title, merchantability, fitness for a particular purpose, non - infringement, or the absence of latent or other defects, accuracy, or - the present or absence of errors, whether or not discoverable, all to - the greatest extent permissible under applicable law. - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without - limitation any person's Copyright and Related Rights in the Work. - Further, Affirmer disclaims responsibility for obtaining any necessary - consents, permissions or other rights required for any use of the - Work. - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to - this CC0 or use of the Work. diff --git a/README.md b/README.md new file mode 100644 index 000000000..a4360afc1 --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# Brazilian Portuguese Translation of the Python Documentation + +[![Workflow status badge][workflow_badge]][workflow_url] +[![Translation statistics badge][stats_badge]][transifex_url] + +Translation files for [Python 3.14 docs][docs_url]. + +See list of incomplete translations in the [potodo.md][potodo] file. + +See [main][main] branch for scripts, docs, license and more info. + +[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.14/ +[workflow_badge]: https://github.com/python/python-docs-pt-br/workflows/python-314/badge.svg +[workflow_url]: https://github.com/python/python-docs-pt-br/actions?workflow=python-314 +[stats_badge]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.14%2Fstats.json&query=completion&label=pt_BR +[transifex_url]: https://app.transifex.com/python-doc/python-newest/ + diff --git a/README.rst b/README.rst deleted file mode 100644 index 8bdf0e847..000000000 --- a/README.rst +++ /dev/null @@ -1,146 +0,0 @@ -Brazilian Portuguese Translation of the Python Documentation -============================================= - -All translations are done on Transifex. -https://explore.transifex.com/python-doc/ - -Please use pull request only for improving scripts, README, etc.; not for translation - -For guides, contacts and more, please see the `Wiki `_. - -Join the translation team at the Telegram group `@pybr_i18n `_. - -Versions translation status -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -See below a table of the translation status for each version, separated by versions that are still maintained and version that reached the end-of-life (EOL). - -Maintained versions: --------------------- - - -.. list-table:: - :header-rows: 1 - - * - Version - - Sync status - - Translation progress - - Total strings - * - `3.15 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-315/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-315 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.15%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.15 - :target: https://app.transifex.com/python-doc/python-newest/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.15%2Fstats.json&query=entries&label=3.15 - :alt: Total strings for Python 3.15 - :target: https://app.transifex.com/python-doc/python-newest/ - * - `3.14 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-314/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-314 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.14%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.14 - :target: https://app.transifex.com/python-doc/python-314/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.14%2Fstats.json&query=entries&label=3.14 - :alt: Total strings for Python 3.14 - :target: https://app.transifex.com/python-doc/python-314/ - * - `3.13 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-313/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-313 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.13%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.13 - :target: https://app.transifex.com/python-doc/python-313/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.13%2Fstats.json&query=entries&label=3.13 - :alt: Total strings for Python 3.13 - :target: https://app.transifex.com/python-doc/python-313/ - * - `3.12 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-312/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-312 - - .. image:: 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 - :alt: Brazilian Portuguese translation status for Python 3.12 - :target: https://app.transifex.com/python-doc/python-312/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.12%2Fstats.json&query=entries&label=3.12 - :alt: Total strings for Python 3.12 - :target: https://app.transifex.com/python-doc/python-312/ - * - `3.11 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-311/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-311 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.11%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.11 - :target: https://app.transifex.com/python-doc/python-311/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.11%2Fstats.json&query=entries&label=3.11 - :alt: Total strings for Python 3.11 - :target: https://app.transifex.com/python-doc/python-311/ - * - `3.10 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-310/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-310 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.10%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.10 - :target: https://app.transifex.com/python-doc/python-310/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.10%2Fstats.json&query=entries&label=3.10 - :alt: Total strings for Python 3.10 - :target: https://app.transifex.com/python-doc/python-310/ - - -EOL versions: -------------- - - -.. list-table:: - :header-rows: 1 - - * - Version - - Sync status - - Translation progress - - Total strings - * - `3.9 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-39/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-39 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.9%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.9 - :target: https://app.transifex.com/python-doc/python-39/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.9%2Fstats.json&query=entries&label=3.9 - :alt: Total strings for Python 3.9 - :target: https://app.transifex.com/python-doc/python-39/ - * - `3.8 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-38/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-38 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.8%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.8 - :target: https://app.transifex.com/python-doc/python-38/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.8%2Fstats.json&query=entries&label=3.8 - :alt: Total strings for Python 3.8 - :target: https://app.transifex.com/python-doc/python-38/ - * - `3.7 `_ - - .. image:: https://github.com/python/python-docs-pt-br/workflows/python-37/badge.svg - :target: https://github.com/python/python-docs-pt-br/actions?workflow=python-37 - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.7%2Fstats.json&query=completion&label=pt_BR - :alt: Brazilian Portuguese translation status for Python 3.7 - :target: https://app.transifex.com/python-doc/python-37/ - - .. image:: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fpython%2Fpython-docs-pt-br%2Fraw%2F3.7%2Fstats.json&query=entries&label=3.7 - :alt: Total strings for Python 3.7 - :target: https://app.transifex.com/python-doc/python-37/ - - -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 new file mode 100644 index 000000000..388354bcc --- /dev/null +++ b/about.po @@ -0,0 +1,100 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../about.rst:3 +msgid "About this documentation" +msgstr "Sobre esta documentação" + +#: ../../about.rst:6 +msgid "" +"Python's documentation is generated from `reStructuredText`_ sources using " +"`Sphinx`_, a documentation generator originally created for Python and now " +"maintained as an independent project." +msgstr "" +"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:16 +msgid "" +"Development of the documentation and its toolchain is an entirely volunteer " +"effort, just like Python itself. If you want to contribute, please take a " +"look at the :ref:`reporting-bugs` page for information on how to do so. New " +"volunteers are always welcome!" +msgstr "" +"O desenvolvimento da documentação e de suas ferramentas é um esforço " +"totalmente voluntário, como Python em si. Se você quer contribuir, por favor " +"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:21 +msgid "Many thanks go to:" +msgstr "Agradecimentos especiais para:" + +#: ../../about.rst:23 +msgid "" +"Fred L. Drake, Jr., the creator of the original Python documentation toolset " +"and author of much of the content;" +msgstr "" +"Fred L. Drake, Jr., o criador do primeiro conjunto de ferramentas para " +"documentar Python e autor de boa parte do conteúdo;" + +#: ../../about.rst:25 +msgid "" +"the `Docutils `_ project for creating " +"reStructuredText and the Docutils suite;" +msgstr "" +"O projeto `Docutils `_ por criar " +"reStructuredText e o pacote Docutils;" + +#: ../../about.rst:27 +msgid "" +"Fredrik Lundh for his Alternative Python Reference project from which Sphinx " +"got many good ideas." +msgstr "" +"Fredrik Lundh, pelo seu projeto de referência alternativa em Python, do qual " +"Sphinx pegou muitas boas ideias." + +#: ../../about.rst:32 +msgid "Contributors to the Python documentation" +msgstr "Contribuidores da documentação do Python" + +#: ../../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 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:38 +msgid "" +"It is only with the input and contributions of the Python community that " +"Python has such wonderful documentation -- Thank You!" +msgstr "" +"Tudo isso só foi possível com o esforço e a contribuição da comunidade " +"Python, por isso temos essa maravilhosa documentação -- Obrigado a todos!" diff --git a/bugs.po b/bugs.po new file mode 100644 index 000000000..192941472 --- /dev/null +++ b/bugs.po @@ -0,0 +1,287 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../bugs.rst:5 +msgid "Dealing with Bugs" +msgstr "Lidando com bugs" + +#: ../../bugs.rst:7 +msgid "" +"Python is a mature programming language which has established a reputation " +"for stability. In order to maintain this reputation, the developers would " +"like to know of any deficiencies you find in Python." +msgstr "" +"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ê 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 fewer people. Learn how " +"to :ref:`contribute `." +msgstr "" +"Por vezes, pode ser mais rápido corrigir os bugs pessoalmente e contribuir " +"com correções (patches) para o Python, uma vez que simplifica o processo e " +"envolve menos pessoas. Saiba como :ref:`contribuir `." + +#: ../../bugs.rst:16 +msgid "Documentation bugs" +msgstr "Bugs na documentação" + +#: ../../bugs.rst:18 +msgid "" +"If you find a bug in this documentation or would like to propose an " +"improvement, please submit a bug report on the :ref:`issue tracker `. If you have a suggestion on how to fix it, include that as " +"well." +msgstr "" +"Se você achar um bug nesta documentação ou gostaria de propor uma melhoria, " +"por favor submeta um relatório no :ref:`rastreador de problemas `. Se você tiver uma sugestão sobre como consertá-lo inclua isso " +"também." + +#: ../../bugs.rst:24 +msgid "" +"If the bug or suggested improvement concerns the translation of this " +"documentation, submit the report to the `translation’s repository " +"`_ instead." +msgstr "" +"Se o bug ou a melhoria sugerida estiver relacionado à tradução desta " +"documentação, envie o relatório para o `repositório de tradução " +"`_." + +#: ../../bugs.rst:28 +msgid "" +"You can also open a discussion item on our `Documentation Discourse forum " +"`_." +msgstr "" +"Você também pode abrir um item de discussão em nosso `fórum Discourse de " +"documentação `_." + +#: ../../bugs.rst:31 +msgid "" +"If you find a bug in the theme (HTML / CSS / JavaScript) of the " +"documentation, please submit a bug report on the `python-doc-theme issue " +"tracker `_." +msgstr "" +"Se você encontrar um bug no tema (HTML/CSS/JavaScript) da documentação, " +"envie um relatório de bug no `rastreador de problemas do python-doc-theme " +"`_." + +#: ../../bugs.rst:37 +msgid "`Documentation bugs`_" +msgstr "`Bugs na documentação`_" + +#: ../../bugs.rst:38 +msgid "" +"A list of documentation bugs that have been submitted to the Python issue " +"tracker." +msgstr "" +"Uma lista de bugs na documentação que foram submetidos no rastreador de " +"problemas do Python." + +#: ../../bugs.rst:40 +msgid "`Issue Tracking `_" +msgstr "`Rastreando problemas `_" + +#: ../../bugs.rst:41 +msgid "" +"Overview of the process involved in reporting an improvement on the tracker." +msgstr "" +"Visão geral do processo envolvido em reportar uma melhoria no rastreador." + +#: ../../bugs.rst:43 +msgid "" +"`Helping with Documentation `_" +msgstr "" +"`Ajudando com a documentação `_" + +#: ../../bugs.rst:44 +msgid "" +"Comprehensive guide for individuals that are interested in contributing to " +"Python documentation." +msgstr "" +"Guia compreensivo para os indivíduos que estão interessados em contribuir " +"com a documentação do Python." + +#: ../../bugs.rst:46 +msgid "" +"`Documentation Translations `_" +msgstr "" +"`Traduções da documentação `_" + +#: ../../bugs.rst:47 +msgid "" +"A list of GitHub pages for documentation translation and their primary " +"contacts." +msgstr "" +"Uma lista de páginas no GitHub relacionadas à tradução da documentação e " +"respectivos contatos iniciais." + +#: ../../bugs.rst:53 +msgid "Using the Python issue tracker" +msgstr "Usando o rastreador de problemas do Python" + +#: ../../bugs.rst:55 +msgid "" +"Issue reports for Python itself should be submitted via the GitHub issues " +"tracker (https://github.com/python/cpython/issues). The GitHub issues " +"tracker offers a web form which allows pertinent information to be entered " +"and submitted to the developers." +msgstr "" +"Relatórios de problemas do Python em si devem ser submetidos ao rastreador " +"de problemas do GitHub (https://github.com/python/cpython/issues). O " +"rastreador de problemas do GitHub oferece um formulário web que permite " +"informações pertinentes serem enviadas para os desenvolvedores." + +#: ../../bugs.rst:60 +msgid "" +"The first step in filing a report is to determine whether the problem has " +"already been reported. The advantage in doing so, aside from saving the " +"developers' time, is that you learn what has been done to fix it; it may be " +"that the problem has already been fixed for the next release, or additional " +"information is needed (in which case you are welcome to provide it if you " +"can!). To do this, search the tracker using the search box at the top of the " +"page." +msgstr "" +"O primeiro passo para preencher um relatório é determinar se o problema já " +"foi reportado. A vantagem em fazê-lo além de poupar o tempo dos " +"desenvolvedores é que você aprende o que foi feito para consertá-lo; pode " +"ser que o problema já foi consertado para o próximo lançamento, ou que " +"informação adicional seja necessária (nesse caso, você é bem-vindo para " +"fornecê-la se você puder!). Para fazer isso, procure no rastreador usando a " +"caixa de busca no topo da página." + +#: ../../bugs.rst:67 +msgid "" +"If the problem you're reporting is not already in the list, log in to " +"GitHub. If you don't already have a GitHub account, create a new account " +"using the \"Sign up\" link. It is not possible to submit a bug report " +"anonymously." +msgstr "" +"Se o problema que você está relatando ainda não estiver na lista, faça login " +"no GitHub. Se você ainda não tiver uma conta do GitHub, crie uma nova conta " +"usando o link \"Sign Up\". Não é possível enviar um relatório de bug " +"anonimamente." + +#: ../../bugs.rst:72 +msgid "" +"Being now logged in, you can submit an issue. Click on the \"New issue\" " +"button in the top bar to report a new issue." +msgstr "" +"Estando agora autenticado, você pode submeter um relatório de problema. " +"Clique no botão \"New issue\" na barra superior para relatar um novo " +"problema." + +#: ../../bugs.rst:75 +msgid "The submission form has two fields, \"Title\" and \"Comment\"." +msgstr "O formulário de submissão tem dois campos, \"Title\" e \"Comment\"." + +#: ../../bugs.rst:77 +msgid "" +"For the \"Title\" field, enter a *very* short description of the problem; " +"fewer than ten words is good." +msgstr "" +"Para o campo \"Title\", insira uma descrição *muito* curta do problema; " +"menos de dez palavras é bom." + +#: ../../bugs.rst:80 +msgid "" +"In the \"Comment\" field, describe the problem in detail, including what you " +"expected to happen and what did happen. Be sure to include whether any " +"extension modules were involved, and what hardware and software platform you " +"were using (including version information as appropriate)." +msgstr "" +"No campo \"Comment\", descreva o problema com detalhes, incluindo o que você " +"esperava que acontecesse e o que aconteceu. Certifique-se de incluir se " +"quaisquer módulos de extensão estavam envolvidos, e qual hardware e " +"plataforma de software você está usando (incluindo informações sobre a " +"versão quando apropriado)." + +#: ../../bugs.rst:85 +msgid "" +"Each issue report will be reviewed by a developer who will determine what " +"needs to be done to correct the problem. You will receive an update each " +"time an action is taken on the issue." +msgstr "" +"Cada relatório de problema será revisado por um desenvolvedor que irá " +"determinar o que é necessário para solucionar o problema. Você receberá " +"atualizações para cada ação tomada para o problema." + +#: ../../bugs.rst:92 +msgid "" +"`How to Report Bugs Effectively `_" +msgstr "" +"`Como relatar bugs eficientemente `_" + +#: ../../bugs.rst:93 +msgid "" +"Article which goes into some detail about how to create a useful bug report. " +"This describes what kind of information is useful and why it is useful." +msgstr "" +"Artigo que entra em algum detalhe sobre como criar um relatório de bug útil. " +"Isto descreve qual tipo de informação é útil e por quê é útil." + +#: ../../bugs.rst:96 +msgid "" +"`Bug Writing Guidelines `_" +msgstr "" +"`Diretrizes para relatar bugs `_" + +#: ../../bugs.rst:97 +msgid "" +"Information about writing a good bug report. Some of this is specific to " +"the Mozilla project, but describes general good practices." +msgstr "" +"Informação sobre como escrever um bom relatório de bug. Um pouco disto é " +"específico do Projeto Mozilla, mas descreve boas práticas em geral." + +#: ../../bugs.rst:103 +msgid "Getting started contributing to Python yourself" +msgstr "Começando a contribuir com o Python por conta própria" + +#: ../../bugs.rst:105 +msgid "" +"Beyond just reporting bugs that you find, you are also welcome to submit " +"patches to fix them. You can find more information on how to get started " +"patching Python in the `Python Developer's Guide`_. If you have questions, " +"the `core-mentorship mailing list`_ is a friendly place to get answers to " +"any and all questions pertaining to the process of fixing issues in Python." +msgstr "" +"Além de apenas reportar os bugs que você encontrar, você também é bem-vindo " +"para submeter patches para consertá-los. Você pode achar mais informações " +"sobre como começar a contribuir com patches para o Python no `Python " +"Developer's Guide`_. Se você tem mais perguntas, a `lista de discussão core-" +"mentorship`_ é um lugar amigável para obter respostas para qualquer questão " +"relativa ao processo de resolução de problemas no Python." diff --git a/c-api/abstract.po b/c-api/abstract.po new file mode 100644 index 000000000..6f2accf2f --- /dev/null +++ b/c-api/abstract.po @@ -0,0 +1,51 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/abstract.rst:7 +msgid "Abstract Objects Layer" +msgstr "Camada de Objetos Abstratos" + +#: ../../c-api/abstract.rst:9 +msgid "" +"The functions in this chapter interact with Python objects regardless of " +"their type, or with wide classes of object types (e.g. all numerical types, " +"or all sequence types). When used on object types for which they do not " +"apply, they will raise a Python exception." +msgstr "" +"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." +msgstr "" +"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 new file mode 100644 index 000000000..b5d7ee4ab --- /dev/null +++ b/c-api/allocation.po @@ -0,0 +1,303 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# Wagner Marques Oliveira , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-09 15:35+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+0000\n" +"Last-Translator: Wagner Marques Oliveira , 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" +"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 heap" + +#: ../../c-api/allocation.rst:17 +msgid "" +"Initialize a newly allocated object *op* with its type and initial " +"reference. Returns the initialized object. Other fields of the object are " +"not initialized. Despite its name, this function is unrelated to the " +"object's :meth:`~object.__init__` method (:c:member:`~PyTypeObject.tp_init` " +"slot). Specifically, this function does **not** call the object's :meth:`!" +"__init__` method." +msgstr "" +"Inicializa um objeto *op* recém-alocado com seu tipo e referência inicial. " +"Retorna o objeto inicializado. Outros campos do objeto não são " +"inicializados. Apesar do nome, esta função não tem relação com o método :" +"meth:`~object.__init__` do objeto (slot :c:member:`~PyTypeObject.tp_init`). " +"Especificamente, esta função **não** chama o método :meth:`!__init__` do " +"objeto." + +#: ../../c-api/allocation.rst:24 +msgid "" +"In general, consider this function to be a low-level routine. Use :c:member:" +"`~PyTypeObject.tp_alloc` where possible. For implementing :c:member:`!" +"tp_alloc` for your type, prefer :c:func:`PyType_GenericAlloc` or :c:func:" +"`PyObject_New`." +msgstr "" +"Em geral, considere esta função como uma rotina de baixo nível. Use :c:" +"member:`~PyTypeObject.tp_alloc` sempre que possível. Para implementar :c:" +"member:`!tp_alloc` para o seu tipo, prefira :c:func:`PyType_GenericAlloc` " +"ou :c:func:`PyObject_New`." + +#: ../../c-api/allocation.rst:31 +msgid "" +"This function only initializes the object's memory corresponding to the " +"initial :c:type:`PyObject` structure. It does not zero the rest." +msgstr "" +"Esta função inicializa apenas a memória do objeto correspondente à estrutura " +"inicial :c:type:`PyObject`. Não zera o restante." + +#: ../../c-api/allocation.rst:37 +msgid "" +"This does everything :c:func:`PyObject_Init` does, and also initializes the " +"length information for a variable-size object." +msgstr "" +"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:42 +msgid "" +"This function only initializes some of the object's memory. It does not " +"zero the rest." +msgstr "" +"Esta função inicializa apenas parte da memória do objeto. Não zera o " +"restante." + +#: ../../c-api/allocation.rst:48 +msgid "" +"Allocates a new Python object using the C structure type *TYPE* and the " +"Python type object *typeobj* (``PyTypeObject*``) by calling :c:func:" +"`PyObject_Malloc` to allocate memory and initializing it like :c:func:" +"`PyObject_Init`. The caller will own the only reference to the object (i.e. " +"its reference count will be one)." +msgstr "" +"Aloca um novo objeto Python usando o tipo de estrutura C *TYPE* e o objeto " +"de tipo Python *typeobj* (``PyTypeObject*``) chamando :c:func:" +"`PyObject_Malloc` para alocar memória e inicializando-o como :c:func:" +"`PyObject_Init`. O chamador possuirá a única referência ao objeto (ou seja, " +"sua contagem de referências será um)." + +#: ../../c-api/allocation.rst:54 ../../c-api/allocation.rst:107 +msgid "" +"Avoid calling this directly to allocate memory for an object; call the " +"type's :c:member:`~PyTypeObject.tp_alloc` slot instead." +msgstr "" +"Evite chamar isso diretamente para alocar memória para um objeto; em vez " +"disso, chame o slot :c:member:`~PyTypeObject.tp_alloc` do tipo." + +#: ../../c-api/allocation.rst:57 ../../c-api/allocation.rst:110 +msgid "" +"When populating a type's :c:member:`~PyTypeObject.tp_alloc` slot, :c:func:" +"`PyType_GenericAlloc` is preferred over a custom function that simply calls " +"this macro." +msgstr "" +"Ao preencher o slot :c:member:`~PyTypeObject.tp_alloc` de um tipo, :c:func:" +"`PyType_GenericAlloc` é preferível a uma função personalizada que " +"simplesmente chama esta macro." + +#: ../../c-api/allocation.rst:61 +msgid "" +"This macro does not call :c:member:`~PyTypeObject.tp_alloc`, :c:member:" +"`~PyTypeObject.tp_new` (:meth:`~object.__new__`), or :c:member:" +"`~PyTypeObject.tp_init` (:meth:`~object.__init__`)." +msgstr "" +"Esta macro não chama :c:member:`~PyTypeObject.tp_alloc`, :c:member:" +"`~PyTypeObject.tp_new` (:meth:`~object.__new__`) ou :c:member:`~PyTypeObject." +"tp_init` (:meth:`~object.__init__`)." + +#: ../../c-api/allocation.rst:65 +msgid "" +"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set in :c:" +"member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_New` instead." +msgstr "" +"Isso não pode ser usado para objetos com :c:macro:`Py_TPFLAGS_HAVE_GC` " +"definido em :c:member:`~PyTypeObject.tp_flags`; use :c:macro:" +"`PyObject_GC_New` em vez disso." + +#: ../../c-api/allocation.rst:68 +msgid "" +"Memory allocated by this macro must be freed with :c:func:`PyObject_Free` " +"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" +"A memória alocada por esta macro deve ser liberada com :c:func:" +"`PyObject_Free` (geralmente chamado por meio do slot :c:member:" +"`~PyTypeObject.tp_free` do objeto)." + +#: ../../c-api/allocation.rst:73 ../../c-api/allocation.rst:123 +msgid "" +"The returned memory is not guaranteed to have been completely zeroed before " +"it was initialized." +msgstr "" +"Não há garantia de que a memória retornada tenha sido completamente zerada " +"antes de ser inicializada." + +#: ../../c-api/allocation.rst:78 ../../c-api/allocation.rst:128 +msgid "" +"This macro does not construct a fully initialized object of the given type; " +"it merely allocates memory and prepares it for further initialization by :c:" +"member:`~PyTypeObject.tp_init`. To construct a fully initialized object, " +"call *typeobj* instead. For example::" +msgstr "" +"Esta macro não constrói um objeto totalmente inicializado do tipo fornecido; " +"ela apenas aloca memória e a prepara para inicialização posterior por :c:" +"member:`~PyTypeObject.tp_init`. Para construir um objeto totalmente " +"inicializado, chame *typeobj*. Por exemplo:" + +#: ../../c-api/allocation.rst:83 +msgid "PyObject *foo = PyObject_CallNoArgs((PyObject *)&PyFoo_Type);" +msgstr "PyObject *foo = PyObject_CallNoArgs((PyObject *)&PyFoo_Type);" + +#: ../../c-api/allocation.rst:87 ../../c-api/allocation.rst:137 +#: ../../c-api/allocation.rst:184 ../../c-api/allocation.rst:186 +#: ../../c-api/allocation.rst:188 +msgid ":c:func:`PyObject_Free`" +msgstr ":c:func:`PyObject_Free`" + +#: ../../c-api/allocation.rst:88 +msgid ":c:macro:`PyObject_GC_New`" +msgstr ":c:macro:`PyObject_GC_New`" + +#: ../../c-api/allocation.rst:89 ../../c-api/allocation.rst:139 +msgid ":c:func:`PyType_GenericAlloc`" +msgstr ":c:func:`PyType_GenericAlloc`" + +#: ../../c-api/allocation.rst:90 ../../c-api/allocation.rst:140 +msgid ":c:member:`~PyTypeObject.tp_alloc`" +msgstr ":c:member:`~PyTypeObject.tp_alloc`" + +#: ../../c-api/allocation.rst:95 +msgid "Like :c:macro:`PyObject_New` except:" +msgstr "Como :c:macro:`PyObject_New`, exceto que:" + +#: ../../c-api/allocation.rst:97 +msgid "" +"It allocates enough memory for the *TYPE* structure plus *size* " +"(``Py_ssize_t``) fields of the size given by the :c:member:`~PyTypeObject." +"tp_itemsize` field of *typeobj*." +msgstr "" +"Ela aloca memória suficiente para a estrutura *TYPE* mais os *size* " +"(``Py_ssize_t``) campos do tamanho fornecido pelo campo :c:member:" +"`~PyTypeObject.tp_itemsize` de *typeobj*." + +#: ../../c-api/allocation.rst:100 +msgid "The memory is initialized like :c:func:`PyObject_InitVar`." +msgstr "A memória é inicializada como :c:func:`PyObject_InitVar`." + +#: ../../c-api/allocation.rst:102 +msgid "" +"This is useful for implementing objects like tuples, which are able to " +"determine their size at construction time. Embedding the array of fields " +"into the same allocation decreases the number of allocations, improving the " +"memory management efficiency." +msgstr "" +"Isso é útil para implementar objetos como tuplas, que conseguem determinar " +"seu tamanho em tempo de construção. Incorporar o vetor de campos na mesma " +"alocação diminui o número de alocações, melhorando a eficiência do " +"gerenciamento de memória." + +#: ../../c-api/allocation.rst:114 +msgid "" +"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set in :c:" +"member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_NewVar` instead." +msgstr "" +"Isso não pode ser usado para objetos com :c:macro:`Py_TPFLAGS_HAVE_GC` " +"definido em :c:member:`~PyTypeObject.tp_flags`; use :c:macro:" +"`PyObject_GC_NewVar` em vez disso." + +#: ../../c-api/allocation.rst:118 +msgid "" +"Memory allocated by this function must be freed with :c:func:`PyObject_Free` " +"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" +"A memória alocada por esta função deve ser liberada com :c:func:" +"`PyObject_Free` (geralmente chamado por meio do slot :c:member:" +"`~PyTypeObject.tp_free` do objeto)." + +#: ../../c-api/allocation.rst:133 +msgid "" +"PyObject *list_instance = PyObject_CallNoArgs((PyObject *)&PyList_Type);" +msgstr "" +"PyObject *list_instance = PyObject_CallNoArgs((PyObject *)&PyList_Type);" + +#: ../../c-api/allocation.rst:138 +msgid ":c:macro:`PyObject_GC_NewVar`" +msgstr ":c:macro:`PyObject_GC_NewVar`" + +#: ../../c-api/allocation.rst:145 +msgid "" +"Object which is visible in Python as ``None``. This should only be accessed " +"using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " +"object." +msgstr "" +"Objeto o qual é visível no Python como ``None``. Isto só deve ser acessado " +"usando a macro :c:macro:`Py_None`, o qual avalia como um ponteiro para este " +"objeto." + +#: ../../c-api/allocation.rst:152 +msgid ":ref:`moduleobjects`" +msgstr ":ref:`moduleobjects`" + +#: ../../c-api/allocation.rst:153 +msgid "To allocate and create extension modules." +msgstr "Para alocar e criar módulos de extensão." + +#: ../../c-api/allocation.rst:157 +msgid "Soft-deprecated aliases" +msgstr "Apelidos suavemente descontinuados" + +#: ../../c-api/allocation.rst:161 +msgid "" +"These are aliases to existing functions and macros. They exist solely for " +"backwards compatibility." +msgstr "" +"Esses são apelidos para funções e macros existentes. Eles existem unicamente " +"para fins de retrocompatibilidade." + +#: ../../c-api/allocation.rst:169 +msgid "Soft-deprecated alias" +msgstr "Apelido suavemente descontinuado" + +#: ../../c-api/allocation.rst:170 +msgid "Function" +msgstr "Função" + +#: ../../c-api/allocation.rst:172 +msgid ":c:macro:`PyObject_New`" +msgstr ":c:macro:`PyObject_New`" + +#: ../../c-api/allocation.rst:174 +msgid ":c:macro:`PyObject_NewVar`" +msgstr ":c:macro:`PyObject_NewVar`" + +#: ../../c-api/allocation.rst:176 +msgid ":c:func:`PyObject_Init`" +msgstr ":c:func:`PyObject_Init`" + +#: ../../c-api/allocation.rst:178 +msgid ":c:func:`PyObject_InitVar`" +msgstr ":c:func:`PyObject_InitVar`" + +#: ../../c-api/allocation.rst:180 +msgid ":c:func:`PyObject_Malloc`" +msgstr ":c:func:`PyObject_Malloc`" + +#: ../../c-api/allocation.rst:182 +msgid ":c:func:`PyObject_Realloc`" +msgstr ":c:func:`PyObject_Realloc`" diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po new file mode 100644 index 000000000..1e39e4a46 --- /dev/null +++ b/c-api/apiabiversion.po @@ -0,0 +1,329 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/apiabiversion.rst:7 +msgid "API and ABI Versioning" +msgstr "API e Versionamento de ABI" + +#: ../../c-api/apiabiversion.rst:11 +msgid "Build-time version constants" +msgstr "Constantes de versão de tempo de construção" + +#: ../../c-api/apiabiversion.rst:13 +msgid "" +"CPython exposes its version number in the following macros. Note that these " +"correspond to the version code is **built** with. See :c:var:`Py_Version` " +"for the version used at **run time**." +msgstr "" +"O CPython expõe seu número de versão nas seguintes macros. Note que estes " +"correspondem ao código da versão com a qual está **construída**. Veja :c:var:" +"`Py_Version` para a versão usada em **tempo de execução**." + +#: ../../c-api/apiabiversion.rst:17 +msgid "" +"See :ref:`stable` for a discussion of API and ABI stability across versions." +msgstr "" +"Veja :ref:`stable` para uma discussão da estabilidade da API e ABI através " +"das versões." + +#: ../../c-api/apiabiversion.rst:21 +msgid "The ``3`` in ``3.4.1a2``." +msgstr "O ``3`` em ``3.4.1a2``." + +#: ../../c-api/apiabiversion.rst:25 +msgid "The ``4`` in ``3.4.1a2``." +msgstr "O ``4`` em ``3.4.1a2``." + +#: ../../c-api/apiabiversion.rst:29 +msgid "The ``1`` in ``3.4.1a2``." +msgstr "O ``1`` em ``3.4.1a2``." + +#: ../../c-api/apiabiversion.rst:33 +msgid "" +"The ``a`` in ``3.4.1a2``. This can be ``0xA`` for alpha, ``0xB`` for beta, " +"``0xC`` for release candidate or ``0xF`` for final." +msgstr "" +"O ``a`` em ``3.4.1a2``. Isto pode ser ``0xA`` para alfa, ``0xB`` para beta, " +"``0xC`` para o candidato a lançamento ou ``0xF`` para final." + +#: ../../c-api/apiabiversion.rst:39 +msgid "The ``2`` in ``3.4.1a2``. Zero for final releases." +msgstr "O ``2`` em ``3.4.1a2``. Zero para os lançamentos finais." + +#: ../../c-api/apiabiversion.rst:43 +msgid "" +"The Python version number encoded in a single integer. See :c:func:" +"`Py_PACK_FULL_VERSION` for the encoding details." +msgstr "" +"O número da versão do Python codificado em um único inteiro. Consulte :c:" +"func:`Py_PACK_FULL_VERSION` para obter detalhes sobre a codificação." + +#: ../../c-api/apiabiversion.rst:46 +msgid "" +"Use this for numeric comparisons, for example, ``#if PY_VERSION_HEX >= ...``." +msgstr "" +"Use isso para comparações numéricas como, por exemplo, ``#if PY_VERSION_HEX " +">= ...``." + +#: ../../c-api/apiabiversion.rst:49 +msgid "These macros are defined in :source:`Include/patchlevel.h`." +msgstr "Essas macros estão definidas em :source:`Include/patchlevel.h`." + +#: ../../c-api/apiabiversion.rst:53 +msgid "Run-time version" +msgstr "Versão de tempo de execução" + +#: ../../c-api/apiabiversion.rst:57 +msgid "" +"The Python runtime version number encoded in a single constant integer. See :" +"c:func:`Py_PACK_FULL_VERSION` for the encoding details. This contains the " +"Python version used at run time." +msgstr "" +"O número da versão do tempo de execução do Python codificado em um único " +"inteiro constante. Consulte :c:func:`Py_PACK_FULL_VERSION` para obter " +"detalhes sobre a codificação. Contém a versão do Python usada em tempo de " +"execução." + +#: ../../c-api/apiabiversion.rst:61 +msgid "" +"Use this for numeric comparisons, for example, ``if (Py_Version >= ...)``." +msgstr "" +"Use isso para comparações numéricas como, por exemplo, ``if (Py_Version " +">= ...)``." + +#: ../../c-api/apiabiversion.rst:67 +msgid "Bit-packing macros" +msgstr "Macros de empacotamento de bits" + +#: ../../c-api/apiabiversion.rst:71 +msgid "" +"Return the given version, encoded as a single 32-bit integer with the " +"following structure:" +msgstr "" +"Retorna a versão fornecida, codificada como um único inteiro de 32 bits com " +"a seguinte estrutura:" + +#: ../../c-api/apiabiversion.rst:77 +msgid "Argument" +msgstr "Argumento" + +#: ../../c-api/apiabiversion.rst:75 +msgid "No. of bits" +msgstr "Nº de bits" + +#: ../../c-api/apiabiversion.rst:77 +msgid "Bit mask" +msgstr "Máscara de bits" + +#: ../../c-api/apiabiversion.rst:77 +msgid "Bit shift" +msgstr "Deslocamento de bits" + +#: ../../c-api/apiabiversion.rst:75 +msgid "Example values" +msgstr "Exemplo de valores" + +#: ../../c-api/apiabiversion.rst:77 ../../c-api/apiabiversion.rst:95 +msgid "``3.4.1a2``" +msgstr "``3.4.1a2``" + +#: ../../c-api/apiabiversion.rst:77 ../../c-api/apiabiversion.rst:97 +msgid "``3.10.0``" +msgstr "``3.10.0``" + +#: ../../c-api/apiabiversion.rst:79 +msgid "*major*" +msgstr "*major*" + +#: ../../c-api/apiabiversion.rst:79 ../../c-api/apiabiversion.rst:81 +#: ../../c-api/apiabiversion.rst:83 +msgid "8" +msgstr "8" + +#: ../../c-api/apiabiversion.rst:79 +msgid "``0xFF000000``" +msgstr "``0xFF000000``" + +#: ../../c-api/apiabiversion.rst:79 +msgid "24" +msgstr "24" + +#: ../../c-api/apiabiversion.rst:79 +msgid "``0x03``" +msgstr "``0x03``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "*minor*" +msgstr "*minor*" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x00FF0000``" +msgstr "``0x00FF0000``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "16" +msgstr "16" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x04``" +msgstr "``0x04``" + +#: ../../c-api/apiabiversion.rst:81 +msgid "``0x0A``" +msgstr "``0x0A``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "*micro*" +msgstr "*micro*" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0x0000FF00``" +msgstr "``0x0000FF00``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0x01``" +msgstr "``0x01``" + +#: ../../c-api/apiabiversion.rst:83 +msgid "``0x00``" +msgstr "``0x00``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "*release_level*" +msgstr "*release_level*" + +#: ../../c-api/apiabiversion.rst:85 ../../c-api/apiabiversion.rst:87 +msgid "4" +msgstr "4" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0x000000F0``" +msgstr "``0x000000F0``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0xA``" +msgstr "``0xA``" + +#: ../../c-api/apiabiversion.rst:85 +msgid "``0xF``" +msgstr "``0xF``" + +#: ../../c-api/apiabiversion.rst:87 +msgid "*release_serial*" +msgstr "*release_serial*" + +#: ../../c-api/apiabiversion.rst:87 +msgid "``0x0000000F``" +msgstr "``0x0000000F``" + +#: ../../c-api/apiabiversion.rst:87 +msgid "0" +msgstr "0" + +#: ../../c-api/apiabiversion.rst:87 +msgid "``0x2``" +msgstr "``0x2``" + +#: ../../c-api/apiabiversion.rst:87 +msgid "``0x0``" +msgstr "``0x0``" + +#: ../../c-api/apiabiversion.rst:90 +msgid "For example:" +msgstr "Por exemplo:" + +#: ../../c-api/apiabiversion.rst:93 +msgid "Version" +msgstr "Versão" + +#: ../../c-api/apiabiversion.rst:93 +msgid "``Py_PACK_FULL_VERSION`` arguments" +msgstr "Argumentos de ``Py_PACK_FULL_VERSION``" + +#: ../../c-api/apiabiversion.rst:93 +msgid "Encoded version" +msgstr "Versão codificada" + +#: ../../c-api/apiabiversion.rst:95 +msgid "``(3, 4, 1, 0xA, 2)``" +msgstr "``(3, 4, 1, 0xA, 2)``" + +#: ../../c-api/apiabiversion.rst:95 +msgid "``0x030401a2``" +msgstr "``0x030401a2``" + +#: ../../c-api/apiabiversion.rst:97 +msgid "``(3, 10, 0, 0xF, 0)``" +msgstr "``(3, 10, 0, 0xF, 0)``" + +#: ../../c-api/apiabiversion.rst:97 +msgid "``0x030a00f0``" +msgstr "``0x030a00f0``" + +#: ../../c-api/apiabiversion.rst:100 +msgid "" +"Out-of range bits in the arguments are ignored. That is, the macro can be " +"defined as:" +msgstr "" +"Bits fora do intervalo nos argumentos são ignorados. Ou seja, a macro pode " +"ser definida como:" + +#: ../../c-api/apiabiversion.rst:103 +msgid "" +"#ifndef Py_PACK_FULL_VERSION\n" +"#define Py_PACK_FULL_VERSION(X, Y, Z, LEVEL, SERIAL) ( \\\n" +" (((X) & 0xff) << 24) | \\\n" +" (((Y) & 0xff) << 16) | \\\n" +" (((Z) & 0xff) << 8) | \\\n" +" (((LEVEL) & 0xf) << 4) | \\\n" +" (((SERIAL) & 0xf) << 0))\n" +"#endif" +msgstr "" +"#ifndef Py_PACK_FULL_VERSION\n" +"#define Py_PACK_FULL_VERSION(X, Y, Z, LEVEL, SERIAL) ( \\\n" +" (((X) & 0xff) << 24) | \\\n" +" (((Y) & 0xff) << 16) | \\\n" +" (((Z) & 0xff) << 8) | \\\n" +" (((LEVEL) & 0xf) << 4) | \\\n" +" (((SERIAL) & 0xf) << 0))\n" +"#endif" + +#: ../../c-api/apiabiversion.rst:114 +msgid "" +"``Py_PACK_FULL_VERSION`` is primarily a macro, intended for use in ``#if`` " +"directives, but it is also available as an exported function." +msgstr "" +"``Py_PACK_FULL_VERSION`` é principalmente uma macro, destinada ao uso em " +"diretivas ``#if``, mas também está disponível como uma função exportada." + +#: ../../c-api/apiabiversion.rst:121 +msgid "" +"Equivalent to ``Py_PACK_FULL_VERSION(major, minor, 0, 0, 0)``. The result " +"does not correspond to any Python release, but is useful in numeric " +"comparisons." +msgstr "" +"Equivalente a ``Py_PACK_FULL_VERSION(major, minor, 0, 0, 0)``. O resultado " +"não corresponde a nenhuma versão do Python, mas é útil em comparações " +"numéricas." diff --git a/c-api/arg.po b/c-api/arg.po new file mode 100644 index 000000000..c77c925e3 --- /dev/null +++ b/c-api/arg.po @@ -0,0 +1,1679 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/arg.rst:6 +msgid "Parsing arguments and building values" +msgstr "Análise de argumentos e construção de valores" + +#: ../../c-api/arg.rst:8 +msgid "" +"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 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." +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." + +#: ../../c-api/arg.rst:19 +msgid "Parsing arguments" +msgstr "Análise de argumentos" + +#: ../../c-api/arg.rst:21 +msgid "" +"A format string consists of zero or more \"format units.\" A format unit " +"describes one Python object; it is usually a single character or a " +"parenthesized sequence of format units. With a few exceptions, a format " +"unit that is not a parenthesized sequence normally corresponds to a single " +"address argument to these functions. In the following description, the " +"quoted form is the format unit; the entry in (round) parentheses is the " +"Python object type that matches the format unit; and the entry in [square] " +"brackets is the type of the C variable(s) whose address should be passed." +msgstr "" +"Uma string de formato consiste em zero ou mais \"unidades de formato\". Uma " +"unidade de formato descreve um objeto Python; geralmente é um único " +"caractere ou uma sequência entre parênteses de unidades de formato. Com " +"algumas poucas exceções, uma unidade de formato que não é uma sequência " +"entre parênteses normalmente corresponde a um único argumento de endereço " +"para essas funções. Na descrição a seguir, a forma citada é a unidade de " +"formato; a entrada em parênteses ( ) é o tipo de objeto Python que " +"corresponde à unidade de formato; e a entrada em colchetes [ ] é o tipo da " +"variável(s) C cujo endereço deve ser passado." + +#: ../../c-api/arg.rst:33 +msgid "Strings and buffers" +msgstr "Strings e buffers" + +#: ../../c-api/arg.rst:37 +msgid "" +"On Python 3.12 and older, the macro :c:macro:`!PY_SSIZE_T_CLEAN` must be " +"defined before including :file:`Python.h` to use all ``#`` variants of " +"formats (``s#``, ``y#``, etc.) explained below. This is not necessary on " +"Python 3.13 and later." +msgstr "" +"No Python 3.12 e anteriores, a macro :c:macro:`!PY_SSIZE_T_CLEAN` deve ser " +"definida antes da inclusão de :file:`Python.h` para usar todas as variantes " +"no formato ``#`` (``s#``, ``y#``, etc.) explicadas abaixo. Isso não é " +"necessário no Python 3.13 e posteriores." + +#: ../../c-api/arg.rst:42 +msgid "" +"These formats allow accessing an object as a contiguous chunk of memory. You " +"don't have to provide raw storage for the returned unicode or bytes area." +msgstr "" +"Esses formatos permitem acessar um objeto como um pedaço contíguo de " +"memória. Você não precisa fornecer armazenamento bruto para a área de " +"unicode ou bytes retornada." + +#: ../../c-api/arg.rst:46 +msgid "Unless otherwise stated, buffers are not NUL-terminated." +msgstr "Salvo indicação em contrário, os buffers não são terminados em NUL." + +#: ../../c-api/arg.rst:48 +msgid "There are three ways strings and buffers can be converted to C:" +msgstr "" +"Existem três maneiras pelas quais strings e buffers podem ser convertidos em " +"C:" + +#: ../../c-api/arg.rst:50 +msgid "" +"Formats such as ``y*`` and ``s*`` fill a :c:type:`Py_buffer` structure. This " +"locks the underlying buffer so that the caller can subsequently use the " +"buffer even inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk " +"of mutable data being resized or destroyed. As a result, **you have to " +"call** :c:func:`PyBuffer_Release` after you have finished processing the " +"data (or in any early abort case)." +msgstr "" +"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:57 +msgid "" +"The ``es``, ``es#``, ``et`` and ``et#`` formats allocate the result buffer. " +"**You have to call** :c:func:`PyMem_Free` after you have finished processing " +"the data (or in any early abort case)." +msgstr "" +"Os formatos ``es``, ``es#``, ``et`` e ``et#`` alocam o buffer resultante. " +"**Você precisa chamar** :c:func:`PyMem_Free` depois de ter concluído o " +"processamento de dados (ou em qualquer caso de interrupção precoce)." + +#: ../../c-api/arg.rst:63 +msgid "" +"Other formats take a :class:`str` or a read-only :term:`bytes-like object`, " +"such as :class:`bytes`, and provide a ``const char *`` pointer to its " +"buffer. In this case the buffer is \"borrowed\": it is managed by the " +"corresponding Python object, and shares the lifetime of this object. You " +"won't have to release any memory yourself." +msgstr "" +"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 " +"objeto. Você mesmo não precisará liberar nenhuma memória." + +#: ../../c-api/arg.rst:70 +msgid "" +"To ensure that the underlying buffer may be safely borrowed, the object's :c:" +"member:`PyBufferProcs.bf_releasebuffer` field must be ``NULL``. This " +"disallows common mutable objects such as :class:`bytearray`, but also some " +"read-only objects such as :class:`memoryview` of :class:`bytes`." +msgstr "" +"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`." + +#: ../../c-api/arg.rst:76 +msgid "" +"Besides this ``bf_releasebuffer`` requirement, there is no check to verify " +"whether the input object is immutable (e.g. whether it would honor a request " +"for a writable buffer, or whether another thread can mutate the data)." +msgstr "" +"Além desse requisito ``bf_releasebuffer``, não há nenhuma verificação para " +"saber se o objeto de entrada é imutável (por exemplo, se ele atenderia a uma " +"solicitação de um buffer gravável ou se outro thread pode alterar os dados)." + +#: ../../c-api/arg.rst:80 +msgid "``s`` (:class:`str`) [const char \\*]" +msgstr "``s`` (:class:`str`) [const char \\*]" + +#: ../../c-api/arg.rst:81 +msgid "" +"Convert a Unicode object to a C pointer to a character string. A pointer to " +"an existing string is stored in the character pointer variable whose address " +"you pass. The C string is NUL-terminated. The Python string must not " +"contain embedded null code points; if it does, a :exc:`ValueError` exception " +"is raised. Unicode objects are converted to C strings using ``'utf-8'`` " +"encoding. If this conversion fails, a :exc:`UnicodeError` is raised." +msgstr "" +"Converte um objeto Unicode para um ponteiro em C para uma string. Um " +"ponteiro para uma string existente é armazenado na variável do ponteiro do " +"caractere cujo o endereço que você está passando. A string em C é terminada " +"em NULO. A string no Python não deve conter pontos de código nulo embutidos; " +"se isso acontecer, uma exceção :exc:`ValueError` é levantada. Objetos " +"Unicode são convertidos para strings em C usando a codificação ``'utf-8'``. " +"Se essa conversão falhar, uma exceção :exc:`UnicodeError` é levantada." + +#: ../../c-api/arg.rst:90 +msgid "" +"This format does not accept :term:`bytes-like objects `. " +"If you want to accept filesystem paths and convert them to C character " +"strings, it is preferable to use the ``O&`` format with :c:func:" +"`PyUnicode_FSConverter` as *converter*." +msgstr "" +"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 "" +"Previously, :exc:`TypeError` was raised when embedded null code points were " +"encountered in the Python string." +msgstr "" +"Anteriormente, a exceção :exc:`TypeError` era levantada quando pontos de " +"código nulo embutidos em string Python eram encontrados." + +#: ../../c-api/arg.rst:100 +msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" +msgstr "``s*`` (:class:`str` ou :term:`objeto bytes ou similar`) [Py_buffer]" + +#: ../../c-api/arg.rst:101 +msgid "" +"This format accepts Unicode objects as well as bytes-like objects. It fills " +"a :c:type:`Py_buffer` structure provided by the caller. In this case the " +"resulting C string may contain embedded NUL bytes. Unicode objects are " +"converted to C strings using ``'utf-8'`` encoding." +msgstr "" +"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`]" +msgstr "" +"``s#`` (:class:`str`, :term:`objeto bytes ou similar ` " +"somente leitura) [const char \\*, :c:type:`Py_ssize_t`]" + +#: ../../c-api/arg.rst:107 +msgid "" +"Like ``s*``, except that it provides a :ref:`borrowed buffer `. The result is stored into two C variables, the first one a pointer " +"to a C string, the second one its length. The string may contain embedded " +"null bytes. Unicode objects are converted to C strings using ``'utf-8'`` " +"encoding." +msgstr "" +"Como ``s*``, exceto que não fornece um :ref:`buffer emprestado `. O resultado é armazenado em duas variáveis em C, a " +"primeira é um ponteiro para uma string em C, a segunda é o tamanho. A string " +"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:614 +msgid "``z`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``z`` (:class:`str` ou ``None``) [const char \\*]" + +#: ../../c-api/arg.rst:114 +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``, 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 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``, 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 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``, 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 bytes ou similar` somente leitura) [const char \\*]" + +#: ../../c-api/arg.rst:126 +msgid "" +"This format converts a bytes-like object to a C pointer to a :ref:`borrowed " +"` character string; it does not accept Unicode " +"objects. The bytes buffer must not contain embedded null bytes; if it does, " +"a :exc:`ValueError` exception is raised." +msgstr "" +"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." + +#: ../../c-api/arg.rst:132 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes buffer." +msgstr "" +"Anteriormente, a exceção :exc:`TypeError` era levantada quando pontos de " +"código nulo embutidos em string Python eram encontrados no buffer de bytes." + +#: ../../c-api/arg.rst:136 +msgid "``y*`` (:term:`bytes-like object`) [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 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`]" +msgstr "" +"``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 bytes ou " +"similares." + +#: ../../c-api/arg.rst:145 +msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" +msgstr "``S`` (:class:`bytes`) [PyBytesObject \\*]" + +#: ../../c-api/arg.rst:146 +msgid "" +"Requires that the Python object is a :class:`bytes` object, without " +"attempting any conversion. Raises :exc:`TypeError` if the object is not a " +"bytes object. The C variable may also be declared as :c:expr:`PyObject*`." +msgstr "" +"Exige que o objeto Python seja um objeto :class:`bytes`, sem tentar nenhuma " +"conversão. Levanta :exc:`TypeError` se o objeto não for um objeto byte. A " +"variável C pode ser declarada como :c:expr:`PyObject*`." + +#: ../../c-api/arg.rst:150 +msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" +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*`." +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*`." + +#: ../../c-api/arg.rst:155 +msgid "``U`` (:class:`str`) [PyObject \\*]" +msgstr "``U`` (:class:`str`) [PyObject \\*]" + +#: ../../c-api/arg.rst:156 +msgid "" +"Requires that the Python object is a Unicode object, without attempting any " +"conversion. Raises :exc:`TypeError` if the object is not a Unicode object. " +"The C variable may also be declared as :c:expr:`PyObject*`." +msgstr "" +"Exige que o objeto python seja um objeto Unicode, sem tentar alguma " +"conversão. Levanta :exc:`TypeError` se o objeto não for um objeto Unicode. A " +"variável C deve ser declarada como :c:expr:`PyObject*`." + +#: ../../c-api/arg.rst:160 +msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" +msgstr "" +"``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 has 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 " +"pelo chamador. O buffer pode conter bytes nulos incorporados. O chamador " +"deve chamar :c:func:`PyBuffer_Release` quando isso for feito com o buffer." + +#: ../../c-api/arg.rst:166 +msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" +msgstr "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" + +#: ../../c-api/arg.rst:167 +msgid "" +"This variant on ``s`` is used for encoding Unicode into a character buffer. " +"It only works for encoded data without embedded NUL bytes." +msgstr "" +"Esta variante em ``s`` é utilizada para codificação do Unicode em um buffer " +"de caracteres. Ele só funciona para dados codificados sem NUL bytes " +"incorporados." + +#: ../../c-api/arg.rst:170 +msgid "" +"This format requires two arguments. The first is only used as input, and " +"must be a :c:expr:`const char*` which points to the name of an encoding as a " +"NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " +"used. An exception is raised if the named encoding is not known to Python. " +"The second argument must be a :c:expr:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument." +msgstr "" +"Este formato exige dois 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 é levantada se a codificação nomeada não " +"for conhecida pelo Python. O segundo argumento deve ser um :c:expr:`char**`; " +"o valor do ponteiro a que ele faz referência será definido como um buffer " +"com o conteúdo do texto do argumento. O texto será codificado na codificação " +"especificada pelo primeiro argumento." + +#: ../../c-api/arg.rst:178 +msgid "" +":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " +"the encoded data into this buffer and adjust *\\*buffer* to reference the " +"newly allocated storage. The caller is responsible for calling :c:func:" +"`PyMem_Free` to free the allocated buffer after use." +msgstr "" +":c: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." + +#: ../../c-api/arg.rst:183 +msgid "" +"``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer]" +msgstr "" +"``et`` (:class:`str`, :class:`bytes` ou :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer]" + +#: ../../c-api/arg.rst:184 +msgid "" +"Same as ``es`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" +"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]" +msgstr "" +"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" +"`Py_ssize_t` \\*buffer_length]" + +#: ../../c-api/arg.rst:189 +msgid "" +"This variant on ``s#`` is used for encoding Unicode into a character buffer. " +"Unlike the ``es`` format, this variant allows input data which contains NUL " +"characters." +msgstr "" +"Essa variante em ``s#`` é usada para codificar Unicode em um buffer de " +"caracteres. Diferente do formato ``es``, essa variante permite a entrada de " +"dados que contêm caracteres NUL." + +#: ../../c-api/arg.rst:193 +msgid "" +"It requires three arguments. The first is only used as input, and must be " +"a :c:expr:`const char*` which points to the name of an encoding as a NUL-" +"terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. " +"An exception is raised if the named encoding is not known to Python. The " +"second argument must be a :c:expr:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument. " +"The third argument must be a pointer to an integer; the referenced integer " +"will be set to the number of bytes in the output buffer." +msgstr "" +"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 " +"ponteiro a que ele faz referência será definido como um buffer com o " +"conteúdo do texto do argumento. O texto será codificado na codificação " +"especificada pelo primeiro argumento. O terceiro argumento deve ser um " +"ponteiro para um número inteiro; o número inteiro referenciado será definido " +"como o número de bytes no buffer de saída." + +#: ../../c-api/arg.rst:203 +msgid "There are two modes of operation:" +msgstr "Há dois modos de operação:" + +#: ../../c-api/arg.rst:205 +msgid "" +"If *\\*buffer* points a ``NULL`` pointer, the function will allocate a " +"buffer of the needed size, copy the encoded data into this buffer and set " +"*\\*buffer* to reference the newly allocated storage. The caller is " +"responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " +"after usage." +msgstr "" +"Se *\\*buffer* apontar um ponteiro ``NULL``, a função irá alocar um buffer " +"do tamanho necessário, copiar os dados codificados para dentro desse buffer " +"e configurar *\\*buffer* para referenciar o novo armazenamento alocado. O " +"chamador é responsável por chamar :c:func:`PyMem_Free` para liberar o buffer " +"alocado após o uso." + +#: ../../c-api/arg.rst:210 +msgid "" +"If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " +"buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " +"interpret the initial value of *\\*buffer_length* as the buffer size. It " +"will then copy the encoded data into the buffer and NUL-terminate it. If " +"the buffer is not large enough, a :exc:`ValueError` will be set." +msgstr "" +"Se *\\*buffer* apontar para um ponteiro que não seja ``NULL`` (um buffer já " +"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." + +#: ../../c-api/arg.rst:216 +msgid "" +"In both cases, *\\*buffer_length* is set to the length of the encoded data " +"without the trailing NUL byte." +msgstr "" +"Em ambos os casos, o *\\*buffer_length* é definido como o comprimento dos " +"dados codificados sem o byte NUL à direita." + +#: ../../c-api/arg.rst:219 +msgid "" +"``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" +msgstr "" +"``et#`` (:class:`str`, :class:`bytes` ou :class:`bytearray`) [const char " +"\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" + +#: ../../c-api/arg.rst:220 +msgid "" +"Same as ``es#`` except that byte string objects are passed through without " +"recoding them. Instead, the implementation assumes that the byte string " +"object uses the encoding passed in as parameter." +msgstr "" +"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 "" +"``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " +"``Py_UNICODE*`` representation." +msgstr "" +"``u``, ``u#``, ``Z`` e ``Z#`` foram removidos porque usavam uma " +"representação herdada de ``Py_UNICODE*``." + +#: ../../c-api/arg.rst:230 +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:245 +msgid "" +"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 integer), armazenado em um :c:expr:`unsigned char` do C." + +#: ../../c-api/arg.rst:248 ../../c-api/arg.rst:648 +msgid "``B`` (:class:`int`) [unsigned char]" +msgstr "``B`` (:class:`int`) [unsigned char]" + +#: ../../c-api/arg.rst:249 +msgid "" +"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 integer) sem " +"verificação de estouro, armazenado em um :c:expr:`unsigned char` do C." + +#: ../../c-api/arg.rst:252 ../../c-api/arg.rst:642 +msgid "``h`` (:class:`int`) [short int]" +msgstr "``h`` (:class:`int`) [short int]" + +#: ../../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:255 ../../c-api/arg.rst:651 +msgid "``H`` (:class:`int`) [unsigned short int]" +msgstr "``H`` (:class:`int`) [unsigned short int]" + +#: ../../c-api/arg.rst:256 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned short int`, without " +"overflow checking." +msgstr "" +"Converte um inteiro Python para um :c:expr:`unsigned short int` do C, sem " +"verificação de estouro." + +#: ../../c-api/arg.rst:259 ../../c-api/arg.rst:636 +msgid "``i`` (:class:`int`) [int]" +msgstr "``i`` (:class:`int`) [int]" + +#: ../../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:262 ../../c-api/arg.rst:654 +msgid "``I`` (:class:`int`) [unsigned int]" +msgstr "``I`` (:class:`int`) [unsigned int]" + +#: ../../c-api/arg.rst:263 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned int`, without overflow " +"checking." +msgstr "" +"Converte um inteiro Python para um :c:expr:`unsigned int` do C, sem " +"verificação de estouro." + +#: ../../c-api/arg.rst:266 ../../c-api/arg.rst:645 +msgid "``l`` (:class:`int`) [long int]" +msgstr "``l`` (:class:`int`) [long int]" + +#: ../../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:269 ../../c-api/arg.rst:657 +msgid "``k`` (:class:`int`) [unsigned long]" +msgstr "``k`` (:class:`int`) [unsigned long]" + +#: ../../c-api/arg.rst:270 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned long` without overflow " +"checking." +msgstr "" +"Converte um inteiro Python para um :c:expr:`unsigned long` do C sem " +"verificação de estouro." + +#: ../../c-api/arg.rst:273 ../../c-api/arg.rst:283 +msgid "Use :meth:`~object.__index__` if available." +msgstr "Usa :meth:`~object.__index__`, se disponível." + +#: ../../c-api/arg.rst:276 ../../c-api/arg.rst:660 +msgid "``L`` (:class:`int`) [long long]" +msgstr "``L`` (:class:`int`) [longo longo]" + +#: ../../c-api/arg.rst:277 +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:279 ../../c-api/arg.rst:665 +msgid "``K`` (:class:`int`) [unsigned long long]" +msgstr "``K`` (:class:`int`) [unsigned long long]" + +#: ../../c-api/arg.rst:280 +msgid "" +"Convert a Python integer to a C :c:expr:`unsigned long long` without " +"overflow checking." +msgstr "" +"Converte um inteiro Python para um :c:expr:`unsigned long long` do C sem " +"verificação de estouro." + +#: ../../c-api/arg.rst:286 ../../c-api/arg.rst:668 +msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" +msgstr "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" + +#: ../../c-api/arg.rst:287 +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:289 +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:290 +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." + +#: ../../c-api/arg.rst:293 +msgid "Allow :class:`bytearray` objects." +msgstr "Permite objetos :class:`bytearray`." + +#: ../../c-api/arg.rst:296 ../../c-api/arg.rst:686 +msgid "``C`` (:class:`str` of length 1) [int]" +msgstr "``C`` (:class:`str` de comprimento 1) [int]" + +#: ../../c-api/arg.rst:297 +msgid "" +"Convert a Python character, represented as a :class:`str` object of length " +"1, to a C :c:expr:`int`." +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:300 ../../c-api/arg.rst:693 +msgid "``f`` (:class:`float`) [float]" +msgstr "``f``` (:class:`float`) [float]" + +#: ../../c-api/arg.rst:301 +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:303 ../../c-api/arg.rst:690 +msgid "``d`` (:class:`float`) [double]" +msgstr "``d`` (:class:`float`) [double]" + +#: ../../c-api/arg.rst:304 +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:306 +msgid "``D`` (:class:`complex`) [Py_complex]" +msgstr "``D`` (:class:`complex`) [Py_complex]" + +#: ../../c-api/arg.rst:307 +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:310 +msgid "Other objects" +msgstr "Outros objetos" + +#: ../../c-api/arg.rst:312 ../../c-api/arg.rst:699 +msgid "``O`` (object) [PyObject \\*]" +msgstr "``O`` (objeto) [PyObject\\*]" + +#: ../../c-api/arg.rst:313 +msgid "" +"Store a Python object (without any conversion) in a C object pointer. The C " +"program thus receives the actual object that was passed. A new :term:" +"`strong reference` to the object is not created (i.e. its reference count is " +"not increased). The pointer stored is not ``NULL``." +msgstr "" +"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 " +"referências não é aumentada). O ponteiro armazenado não é ``NULL``." + +#: ../../c-api/arg.rst:319 +msgid "``O!`` (object) [*typeobject*, PyObject \\*]" +msgstr "``O!`` (objeto) [*typeobject*, PyObject \\*]" + +#: ../../c-api/arg.rst:320 +msgid "" +"Store a Python object in a C object pointer. This is similar to ``O``, but " +"takes two C arguments: the first is the address of a Python type object, the " +"second is the address of the C variable (of type :c:expr:`PyObject*`) into " +"which the object pointer is stored. If the Python object does not have the " +"required type, :exc:`TypeError` is raised." +msgstr "" +"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." + +#: ../../c-api/arg.rst:328 +msgid "``O&`` (object) [*converter*, *address*]" +msgstr "``O&`` (objeto) [*converter*, *address*]" + +#: ../../c-api/arg.rst:329 +msgid "" +"Convert a Python object to a C variable through a *converter* function. " +"This takes two arguments: the first is a function, the second is the address " +"of a C variable (of arbitrary type), converted to :c:expr:`void *`. The " +"*converter* function in turn is called as follows::" +msgstr "" +"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:334 +msgid "status = converter(object, address);" +msgstr "status = converter(object, address);" + +#: ../../c-api/arg.rst:336 +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:345 +msgid "" +"If the *converter* returns :c:macro:`!Py_CLEANUP_SUPPORTED`, it may get " +"called a second time if the argument parsing eventually fails, giving the " +"converter a chance to release any memory that it had already allocated. In " +"this second call, the *object* parameter will be ``NULL``; *address* will " +"have the same value as in the original call." +msgstr "" +"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:351 +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:354 +msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." +msgstr ":c:macro:`!Py_CLEANUP_SUPPORTED` foi adicionado." + +#: ../../c-api/arg.rst:357 ../../c-api/arg.rst:671 +msgid "``p`` (:class:`bool`) [int]" +msgstr "``p`` (:class:`bool`) [int]" + +#: ../../c-api/arg.rst:358 +msgid "" +"Tests the value passed in for truth (a boolean **p**\\ redicate) and " +"converts the result to its equivalent C true/false integer value. Sets the " +"int to ``1`` if the expression was true and ``0`` if it was false. This " +"accepts any valid Python value. See :ref:`truth` for more information about " +"how Python tests values for truth." +msgstr "" +"Testa o valor transmitido para a verdade (um booleano **p**\\ redicado) e " +"converte o resultado em seu valor inteiro C verdadeiro/falso equivalente. " +"Define o int como ``1`` se a expressão for verdadeira e ``0`` se for falsa. " +"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:366 +msgid "``(items)`` (sequence) [*matching-items*]" +msgstr "``(items)`` (sequência) [*itens-correspondentes*]" + +#: ../../c-api/arg.rst:367 +msgid "" +"The object must be a Python sequence (except :class:`str`, :class:`bytes` " +"or :class:`bytearray`) whose length is the number of format units in " +"*items*. The C arguments must correspond to the individual format units in " +"*items*. Format units for sequences may be nested." +msgstr "" +"O objeto deve ser uma sequência Python (exceto :class:`str`, :class:`bytes` " +"ou :class:`bytearray`) cujo comprimento é o número de unidades de formato em " +"*itens*. Os argumentos C devem corresponder às unidades de formato " +"individuais em *itens*. As unidades de formato para sequências podem ser " +"aninhadas." + +#: ../../c-api/arg.rst:372 +msgid "" +"If *items* contains format units which store a :ref:`borrowed buffer ` (``s``, ``s#``, ``z``, ``z#``, ``y``, or ``y#``) or a :" +"term:`borrowed reference` (``S``, ``Y``, ``U``, ``O``, or ``O!``), the " +"object must be a Python tuple. The *converter* for the ``O&`` format unit in " +"*items* must not store a borrowed buffer or a borrowed reference." +msgstr "" +"Se *items* contiver unidades de formato que armazenam um :ref:`buffer " +"emprestado ` (``s``, ``s#``, ``z``, ``z#``, ``y`` ou " +"``y#``) ou uma :term:`referência emprestada` (``S``, ``Y``, ``U``, ``O`` ou " +"``O!``), o objeto deve ser uma tupla Python. O *conversor* para a unidade de " +"formato ``O&`` em *items* não deve armazenar um buffer emprestado ou uma " +"referência emprestada." + +#: ../../c-api/arg.rst:379 +msgid "" +":class:`str` and :class:`bytearray` objects no longer accepted as a sequence." +msgstr "" +"Objetos :class:`str` e :class:`bytearray` não são mais aceitos como " +"sequência." + +#: ../../c-api/arg.rst:382 +msgid "" +"Non-tuple sequences are deprecated if *items* contains format units which " +"store a borrowed buffer or a borrowed reference." +msgstr "" +"Sequências não-tuplas serão descontinuadas se *items* contiver unidades de " +"formato que armazenem um buffer emprestado ou uma referência emprestada." + +#: ../../c-api/arg.rst:386 +msgid "" +"A few other characters have a meaning in a format string. These may not " +"occur inside nested parentheses. They are:" +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:389 +msgid "``|``" +msgstr "``|``" + +#: ../../c-api/arg.rst:390 +msgid "" +"Indicates that the remaining arguments in the Python argument list are " +"optional. The C variables corresponding to optional arguments should be " +"initialized to their default value --- when an optional argument is not " +"specified, :c:func:`PyArg_ParseTuple` does not touch the contents of the " +"corresponding C variable(s)." +msgstr "" +"Indica que os argumentos restantes na lista de argumentos do Python são " +"opcionais. As variáveis C correspondentes a argumentos opcionais devem ser " +"inicializadas para seus valores padrão --- quando um argumento opcional não " +"é especificado, :c:func:`PyArg_ParseTuple` não toca no conteúdo da(s) " +"variável(eis) C correspondente(s)." + +#: ../../c-api/arg.rst:396 +msgid "``$``" +msgstr "``$``" + +#: ../../c-api/arg.rst:397 +msgid "" +":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " +"arguments in the Python argument list are keyword-only. Currently, all " +"keyword-only arguments must also be optional arguments, so ``|`` must always " +"be specified before ``$`` in the format string." +msgstr "" +":c:func:`PyArg_ParseTupleAndKeywords` apenas: Indica que os argumentos " +"restantes na lista de argumentos do Python são somente-nomeados. Atualmente, " +"todos os argumentos somente-nomeados devem ser também argumentos opcionais, " +"então ``|`` deve sempre ser especificado antes de ``$`` na string de " +"formatação." + +#: ../../c-api/arg.rst:405 +msgid "``:``" +msgstr "``:``" + +#: ../../c-api/arg.rst:406 +msgid "" +"The list of format units ends here; the string after the colon is used as " +"the function name in error messages (the \"associated value\" of the " +"exception that :c:func:`PyArg_ParseTuple` raises)." +msgstr "" +"A lista de unidades de formatação acaba aqui; a string após os dois pontos é " +"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:410 +msgid "``;``" +msgstr "``;``" + +#: ../../c-api/arg.rst:411 +msgid "" +"The list of format units ends here; the string after the semicolon is used " +"as the error message *instead* of the default error message. ``:`` and ``;" +"`` mutually exclude each other." +msgstr "" +"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:415 +msgid "" +"Note that any Python object references which are provided to the caller are " +"*borrowed* references; do not release them (i.e. do not decrement their " +"reference count)!" +msgstr "" +"Note que quaisquer referências a objeto Python que são fornecidas ao " +"chamador são referências *emprestadas*; não libera-as (isto é, não " +"decremente a contagem de referências delas)!" + +#: ../../c-api/arg.rst:419 +msgid "" +"Additional arguments passed to these functions must be addresses of " +"variables whose type is determined by the format string; these are used to " +"store values from the input tuple. There are a few cases, as described in " +"the list of format units above, where these parameters are used as input " +"values; they should match what is specified for the corresponding format " +"unit in that case." +msgstr "" +"Argumentos adicionais passados para essas funções devem ser endereços de " +"variáveis cujo tipo é determinado pela string de formatação; estes são " +"usados para armazenar valores vindos da tupla de entrada. Existem alguns " +"casos, como descrito na lista de unidades de formatação acima, onde esses " +"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:425 +msgid "" +"For the conversion to succeed, the *arg* object must match the format and " +"the format must be exhausted. On success, the ``PyArg_Parse*`` functions " +"return true, otherwise they return false and raise an appropriate exception. " +"When the ``PyArg_Parse*`` functions fail due to conversion failure in one of " +"the format units, the variables at the addresses corresponding to that and " +"the following format units are left untouched." +msgstr "" +"Para a conversão funcionar, o objeto *arg* deve corresponder ao formato e o " +"formato deve estar completo. Em caso de sucesso, as funções ``PyArg_Parse*`` " +"retornam verdadeiro, caso contrário retornam falso e levantam uma exceção " +"apropriada. Quando as funções ``PyArg_Parse*`` falham devido a uma falha de " +"conversão em uma das unidades de formatação, as variáveis nos endereços " +"correspondentes àquela unidade e às unidades de formatação seguintes são " +"deixadas intocadas." + +#: ../../c-api/arg.rst:434 +msgid "API Functions" +msgstr "Funções da API" + +#: ../../c-api/arg.rst:438 +msgid "" +"Parse the parameters of a function that takes only positional parameters " +"into local variables. Returns true on success; on failure, it returns false " +"and raises the appropriate exception." +msgstr "" +"Analisa os parâmetros de uma função que recebe apenas parâmetros posicionais " +"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:445 +msgid "" +"Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " +"rather than a variable number of arguments." +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:451 +msgid "" +"Parse the parameters of a function that takes both positional and keyword " +"parameters into local variables. The *keywords* argument is a ``NULL``-" +"terminated array of keyword parameter names specified as null-terminated " +"ASCII or UTF-8 encoded C strings. Empty names denote :ref:`positional-only " +"parameters `. Returns true on success; on " +"failure, it returns false and raises the appropriate exception." +msgstr "" +"Analisa os parâmetros de uma função que aceita tanto parâmetros posicionais " +"quando parâmetros nomeados e os converte em variáveis locais. O argumento " +"*keywords* é um array terminado em ``NULL`` de nomes de parâmetros nomeados " +"especificados como strings C codificadas em ASCII ou UTF-8 e terminadas com " +"nulo. Nomes vazios representam :ref:`parâmetros somente-posicional " +"`. Retorna verdadeiro em caso de sucesso; em caso " +"de falha, retorna falso e levanta a exceção apropriada." + +#: ../../c-api/arg.rst:462 +msgid "" +"The *keywords* parameter declaration is :c:expr:`char * const *` in C and :c:" +"expr:`const char * const *` in C++. This can be overridden with the :c:macro:" +"`PY_CXX_CONST` macro." +msgstr "" +"A declaração do parâmetro *keywords* é :c:expr:`char * const *` em C e :c:" +"expr:`const char * const *` em C++. Isso pode ser substituído com a macro :" +"c:macro:`PY_CXX_CONST`." + +#: ../../c-api/arg.rst:466 +msgid "" +"Added support for :ref:`positional-only parameters `." +msgstr "" +"Adicionado suporte para :ref:`positional-only parameters `." + +#: ../../c-api/arg.rst:470 +msgid "" +"The *keywords* parameter has now type :c:expr:`char * const *` in C and :c:" +"expr:`const char * const *` in C++, instead of :c:expr:`char **`. Added " +"support for non-ASCII keyword parameter names." +msgstr "" +"O parâmetro *keywords* é agora do tipo :c:expr:`char * const *` em C e :c:" +"expr:`const char * const *` em C++, no lugar de :c:expr:`char **`. " +"Adicionado suporte para nomes de parâmetros nomeados não-ASCII." + +#: ../../c-api/arg.rst:479 +msgid "" +"Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " +"va_list rather than a variable number of arguments." +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:485 +msgid "" +"Ensure that the keys in the keywords argument dictionary are strings. This " +"is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " +"the latter already does this check." +msgstr "" +"Garante que as chaves no dicionário de argumento de palavras reservadas são " +"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:494 +msgid "" +"Parse the parameter of a function that takes a single positional parameter " +"into a local variable. Returns true on success; on failure, it returns " +"false and raises the appropriate exception." +msgstr "" +"Analisa o parâmetro de uma função que recebe um único parâmetro posicional e " +"o converte em uma variável local. Retorna verdadeiro em caso de sucesso; em " +"caso de falha, retorna falso e levanta a exceção apropriada." + +#: ../../c-api/arg.rst:498 +msgid "Example::" +msgstr "Exemplo::" + +#: ../../c-api/arg.rst:500 +msgid "" +"// Function using METH_O calling convention\n" +"static PyObject*\n" +"my_function(PyObject *module, PyObject *arg)\n" +"{\n" +" int value;\n" +" if (!PyArg_Parse(arg, \"i:my_function\", &value)) {\n" +" return NULL;\n" +" }\n" +" // ... use value ...\n" +"}" +msgstr "" +"// Função usando a convenção de chamada ao método METH_O\n" +"static PyObject*\n" +"my_function(PyObject *module, PyObject *arg)\n" +"{\n" +" int value;\n" +" if (!PyArg_Parse(arg, \"i:my_function\", &value)) {\n" +" return NULL;\n" +" }\n" +" // ... usar valor ...\n" +"}" + +#: ../../c-api/arg.rst:514 +msgid "" +"A simpler form of parameter retrieval which does not use a format string to " +"specify the types of the arguments. Functions which use this method to " +"retrieve their parameters should be declared as :c:macro:`METH_VARARGS` in " +"function or method tables. The tuple containing the actual parameters " +"should be passed as *args*; it must actually be a tuple. The length of the " +"tuple must be at least *min* and no more than *max*; *min* and *max* may be " +"equal. Additional arguments must be passed to the function, each of which " +"should be a pointer to a :c:expr:`PyObject*` variable; these will be filled " +"in with the values from *args*; they will contain :term:`borrowed references " +"`. The variables which correspond to optional parameters " +"not given by *args* will not be filled in; these should be initialized by " +"the caller. This function returns true on success and false if *args* is not " +"a tuple or contains the wrong number of elements; an exception will be set " +"if there was a failure." +msgstr "" +"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:529 +msgid "" +"This is an example of the use of this function, taken from the sources for " +"the :mod:`!_weakref` helper module for weak references::" +msgstr "" +"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:532 +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:545 +msgid "" +"The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " +"equivalent to this call to :c:func:`PyArg_ParseTuple`::" +msgstr "" +"A chamada à :c:func:`PyArg_UnpackTuple` neste exemplo é inteiramente " +"equivalente à chamada para :c:func:`PyArg_ParseTuple`::" + +#: ../../c-api/arg.rst:548 +msgid "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" +msgstr "PyArg_ParseTuple(args, \"O|O:ref\", &object, &callback)" + +#: ../../c-api/arg.rst:552 +msgid "" +"The value to be inserted, if any, before :c:expr:`char * const *` in the " +"*keywords* parameter declaration of :c:func:`PyArg_ParseTupleAndKeywords` " +"and :c:func:`PyArg_VaParseTupleAndKeywords`. Default empty for C and " +"``const`` for C++ (:c:expr:`const char * const *`). To override, define it " +"to the desired value before including :file:`Python.h`." +msgstr "" +"O valor para ser inserido, se houver, antes de :c:expr:`char * const *` na " +"declaração do parâmetro *keywords* das funções :c:func:" +"`PyArg_ParseTupleAndKeywords` e :c:func:`PyArg_VaParseTupleAndKeywords`. Por " +"padrão, é vazio para C e ``const`` for C++ (:c:expr:`const char * const *`). " +"Para substituir, defina o valor desejado antes de incluir :file:`Python.h`." + +#: ../../c-api/arg.rst:566 +msgid "Building values" +msgstr "Construindo valores" + +#: ../../c-api/arg.rst:570 +msgid "" +"Create a new value based on a format string similar to those accepted by the " +"``PyArg_Parse*`` family of functions and a sequence of values. Returns the " +"value or ``NULL`` in the case of an error; an exception will be raised if " +"``NULL`` is returned." +msgstr "" +"Cria um novo valor baseado em uma string de formatação similar àquelas " +"aceitas pela família de funções ``PyArg_Parse*`` e uma sequência de valores. " +"Retorna o valor ou ``NULL`` em caso de erro; uma exceção será levantada se " +"``NULL`` for retornado." + +#: ../../c-api/arg.rst:575 +msgid "" +":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " +"only if its format string contains two or more format units. If the format " +"string is empty, it returns ``None``; if it contains exactly one format " +"unit, it returns whatever object is described by that format unit. To force " +"it to return a tuple of size 0 or one, parenthesize the format string." +msgstr "" +":c:func:`Py_BuildValue` não constrói sempre uma tupla. Ela constrói uma " +"tupla apenas se a sua string de formatação contém duas ou mais unidades de " +"formatação. Se a string de formatação estiver vazia, ela retorna ``None``; " +"se ela contém exatamente uma unidade de formatação, ela retorna qualquer que " +"seja o objeto que for descrito pela unidade de formatação. Para forçar ela a " +"retornar uma tupla de tamanho 0 ou um, use parênteses na string de " +"formatação." + +#: ../../c-api/arg.rst:581 +msgid "" +"When memory buffers are passed as parameters to supply data to build " +"objects, as for the ``s`` and ``s#`` formats, the required data is copied. " +"Buffers provided by the caller are never referenced by the objects created " +"by :c:func:`Py_BuildValue`. In other words, if your code invokes :c:func:" +"`malloc` and passes the allocated memory to :c:func:`Py_BuildValue`, your " +"code is responsible for calling :c:func:`free` for that memory once :c:func:" +"`Py_BuildValue` returns." +msgstr "" +"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." + +#: ../../c-api/arg.rst:589 +msgid "" +"In the following description, the quoted form is the format unit; the entry " +"in (round) parentheses is the Python object type that the format unit will " +"return; and the entry in [square] brackets is the type of the C value(s) to " +"be passed." +msgstr "" +"Na descrição a seguir, a forma entre aspas é a unidade de formatação; a " +"entrada em parênteses (arredondado) é o tipo do objeto Python que a unidade " +"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:593 +msgid "" +"The characters space, tab, colon and comma are ignored in format strings " +"(but not within format units such as ``s#``). This can be used to make long " +"format strings a tad more readable." +msgstr "" +"Os caracteres de espaço, tab, dois pontos e vírgula são ignorados em strings " +"de formatação (mas não dentro de unidades de formatação como ``s#``). Isso " +"pode ser usado para tornar strings de formatação longas um pouco mais " +"legíveis." + +#: ../../c-api/arg.rst:597 +msgid "``s`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``s`` (:class:`str` ou ``None``) [const char \\*]" + +#: ../../c-api/arg.rst:598 +msgid "" +"Convert a null-terminated C string to a Python :class:`str` object using " +"``'utf-8'`` encoding. If the C string pointer is ``NULL``, ``None`` is used." +msgstr "" +"Converte uma string C terminada em NULL em um objeto Python :class:`str` " +"usando codificação ``'utf-8'``. Se o ponteiro da string C é ``NULL``, " +"``None`` é usado." + +#: ../../c-api/arg.rst:601 +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:602 +msgid "" +"Convert a C string and its length to a Python :class:`str` object using " +"``'utf-8'`` encoding. If the C string pointer is ``NULL``, the length is " +"ignored and ``None`` is returned." +msgstr "" +"Converte uma string C e seu comprimento em um objeto Python :class:`str` " +"usando a codificação ``'utf-8'``. Se o ponteiro da string C é ``NULL``, o " +"comprimento é ignorado e ``None`` é retornado." + +#: ../../c-api/arg.rst:606 +msgid "``y`` (:class:`bytes`) [const char \\*]" +msgstr "``y`` (:class:`bytes`) [const char \\*]" + +#: ../../c-api/arg.rst:607 +msgid "" +"This converts a C string to a Python :class:`bytes` object. If the C string " +"pointer is ``NULL``, ``None`` is returned." +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:610 +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:611 +msgid "" +"This converts a C string and its lengths to a Python object. If the C " +"string pointer is ``NULL``, ``None`` is returned." +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:615 ../../c-api/arg.rst:631 +msgid "Same as ``s``." +msgstr "O mesmo de ``s``." + +#: ../../c-api/arg.rst:617 +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:618 ../../c-api/arg.rst:634 +msgid "Same as ``s#``." +msgstr "O mesmo de ``s#``." + +#: ../../c-api/arg.rst:620 +msgid "``u`` (:class:`str`) [const wchar_t \\*]" +msgstr "``u`` (:class:`str`) [const wchar_t \\*]" + +#: ../../c-api/arg.rst:621 +msgid "" +"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " +"UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " +"``NULL``, ``None`` is returned." +msgstr "" +"Converte um buffer terminado por null :c:type:`wchar_t` de dados Unicode " +"(UTF-16 ou UCS-4) para um objeto Python Unicode. Se o ponteiro do buffer " +"Unicode é ``NULL``, ``None`` é retornado." + +#: ../../c-api/arg.rst:625 +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:626 +msgid "" +"Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " +"Unicode object. If the Unicode buffer pointer is ``NULL``, the length is " +"ignored and ``None`` is returned." +msgstr "" +"Converte um buffer de dados Unicode (UTF-17 ou UCS-4) e seu comprimento em " +"um objeto Python Unicode. Se o ponteiro do buffer Unicode é ``NULL``, o " +"comprimento é ignorado e ``None`` é retornado." + +#: ../../c-api/arg.rst:630 +msgid "``U`` (:class:`str` or ``None``) [const char \\*]" +msgstr "``U`` (:class:`str` ou ``None``) [const char \\*]" + +#: ../../c-api/arg.rst:633 +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:637 +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:639 +msgid "``b`` (:class:`int`) [char]" +msgstr "``b`` (:class:`int`) [char]" + +#: ../../c-api/arg.rst:640 +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:643 +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:646 +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:649 +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:652 +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:655 +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:658 +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:661 +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:666 +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:669 +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:672 +msgid "Convert a C :c:expr:`int` to a Python :class:`bool` object." +msgstr "Converte um :c:expr:`int` C para um objeto :class:`bool` Python." + +#: ../../c-api/arg.rst:674 +msgid "" +"Be aware that this format requires an ``int`` argument. Unlike most other " +"contexts in C, variadic arguments are not coerced to a suitable type " +"automatically. You can convert another type (for example, a pointer or a " +"float) to a suitable ``int`` value using ``(x) ? 1 : 0`` or ``!!x``." +msgstr "" +"Esteja ciente de que este formato requer um argumento ``int``. Ao contrário " +"da maioria dos outros contextos em C, argumentos variádicos não são " +"convertidos automaticamente para um tipo adequado. Você pode converter outro " +"tipo (por exemplo, um ponteiro ou um float) para um valor ``int`` adequado " +"usando ``(x) ? 1 : 0`` ou ``!!x``." + +#: ../../c-api/arg.rst:682 +msgid "``c`` (:class:`bytes` of length 1) [char]" +msgstr "``c`` (:class:`bytes` de comprimento 1) [char]" + +#: ../../c-api/arg.rst:683 +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." + +#: ../../c-api/arg.rst:687 +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." + +#: ../../c-api/arg.rst:691 +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:694 +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:696 +msgid "``D`` (:class:`complex`) [Py_complex \\*]" +msgstr "``D`` (:class:`complex`) [Py_complex \\*]" + +#: ../../c-api/arg.rst:697 +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:700 +msgid "" +"Pass a Python object untouched but create a new :term:`strong reference` to " +"it (i.e. its reference count is incremented by one). If the object passed in " +"is a ``NULL`` pointer, it is assumed that this was caused because the call " +"producing the argument found an error and set an exception. Therefore, :c:" +"func:`Py_BuildValue` will return ``NULL`` but won't raise an exception. If " +"no exception has been raised yet, :exc:`SystemError` is set." +msgstr "" +"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``, 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:709 +msgid "``S`` (object) [PyObject \\*]" +msgstr "``S`` (objeto) [PyObject \\*]" + +#: ../../c-api/arg.rst:710 +msgid "Same as ``O``." +msgstr "O mesmo que ``O``." + +#: ../../c-api/arg.rst:712 +msgid "``N`` (object) [PyObject \\*]" +msgstr "``N`` (objeto) [PyObject \\*]" + +#: ../../c-api/arg.rst:713 +msgid "" +"Same as ``O``, except it doesn't create a new :term:`strong reference`. " +"Useful when the object is created by a call to an object constructor in the " +"argument list." +msgstr "" +"O mesmo que ``O``, exceto que não cria uma nova :term:`referência forte`. " +"Útil quando o objeto é criado por uma chamada a um construtor de objeto na " +"lista de argumento." + +#: ../../c-api/arg.rst:717 +msgid "``O&`` (object) [*converter*, *anything*]" +msgstr "``O&`` (objeto) [*converter*, *anything*]" + +#: ../../c-api/arg.rst:718 +msgid "" +"Convert *anything* to a Python object through a *converter* function. The " +"function is called with *anything* (which should be compatible with :c:expr:" +"`void*`) as its argument and should return a \"new\" Python object, or " +"``NULL`` if an error occurred." +msgstr "" +"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." + +#: ../../c-api/arg.rst:723 +msgid "``(items)`` (:class:`tuple`) [*matching-items*]" +msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" + +#: ../../c-api/arg.rst:724 +msgid "" +"Convert a sequence of C values to a Python tuple with the same number of " +"items." +msgstr "" +"Converte uma sequência de valores C para uma tupla Python com o mesmo número " +"de itens." + +#: ../../c-api/arg.rst:726 +msgid "``[items]`` (:class:`list`) [*matching-items*]" +msgstr "``[items]`` (:class:`list`) [*matching-items*]" + +#: ../../c-api/arg.rst:727 +msgid "" +"Convert a sequence of C values to a Python list with the same number of " +"items." +msgstr "" +"Converte uma sequência de valores C para uma lista Python com o mesmo número " +"de itens." + +#: ../../c-api/arg.rst:729 +msgid "``{items}`` (:class:`dict`) [*matching-items*]" +msgstr "``{items}`` (:class:`dict`) [*matching-items*]" + +#: ../../c-api/arg.rst:730 +msgid "" +"Convert a sequence of C values to a Python dictionary. Each pair of " +"consecutive C values adds one item to the dictionary, serving as key and " +"value, respectively." +msgstr "" +"Converte uma sequência de valores C para um dicionário Python. Cada par de " +"valores consecutivos do C adiciona um item ao dicionário, servindo como " +"chave e valor, respectivamente." + +#: ../../c-api/arg.rst:734 +msgid "" +"If there is an error in the format string, the :exc:`SystemError` exception " +"is set and ``NULL`` returned." +msgstr "" +"Se existir um erro na string de formatação, a exceção :exc:`SystemError` é " +"definida e ``NULL`` é retornado." + +#: ../../c-api/arg.rst:739 +msgid "" +"Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " +"rather than a variable number of arguments." +msgstr "" +"Idêntico a :c:func:`Py_BuildValue`, exceto que aceita uma va_list ao invés " +"de um número variável de argumentos." diff --git a/c-api/bool.po b/c-api/bool.po new file mode 100644 index 000000000..98aea8ac9 --- /dev/null +++ b/c-api/bool.po @@ -0,0 +1,94 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/bool.rst:6 +msgid "Boolean Objects" +msgstr "Objetos Booleanos" + +#: ../../c-api/bool.rst:8 +msgid "" +"Booleans in Python are implemented as a subclass of integers. There are " +"only two booleans, :c:data:`Py_False` and :c:data:`Py_True`. As such, the " +"normal creation and deletion functions don't apply to booleans. The " +"following macros are available, however." +msgstr "" +"Os booleanos no Python são implementados como um subclasse de inteiros. Há " +"apenas dois booleanos, :c:data:`Py_False` e :c:data:`Py_True`. Assim sendo, " +"as funções de criação e a exclusão normais não se aplicam aos booleanos. No " +"entanto, as seguintes macros estão disponíveis." + +#: ../../c-api/bool.rst:16 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python boolean type; " +"it is the same object as :class:`bool` in the Python layer." +msgstr "" +"Este instância de :c:type:`PyTypeObject` representa o tipo booleano em " +"Python; é o mesmo objeto que :class:`bool` na camada Python." + +#: ../../c-api/bool.rst:22 +msgid "" +"Return true if *o* is of type :c:data:`PyBool_Type`. This function always " +"succeeds." +msgstr "" +"Retorna verdadeiro se *o* for do tipo :c:data:`PyBool_Type`. Esta função " +"sempre tem sucesso." + +#: ../../c-api/bool.rst:28 +msgid "" +"The Python ``False`` object. This object has no methods and is :term:" +"`immortal`." +msgstr "" +"O objeto Python ``False``. Este objeto não tem métodos e é :term:`imortal`." + +#: ../../c-api/bool.rst:31 +msgid ":c:data:`Py_False` is :term:`immortal`." +msgstr ":c:data:`Py_False` é :term:`imortal`." + +#: ../../c-api/bool.rst:37 +msgid "" +"The Python ``True`` object. This object has no methods and is :term:" +"`immortal`." +msgstr "" +"O objeto Python ``True``. Este objeto não tem métodos e é :term:`imortal`." + +#: ../../c-api/bool.rst:40 +msgid ":c:data:`Py_True` is :term:`immortal`." +msgstr ":c:data:`Py_True` é :term:`imortal`." + +#: ../../c-api/bool.rst:46 +msgid "Return :c:data:`Py_False` from a function." +msgstr "Retorna :c:data:`Py_False` de uma função." + +#: ../../c-api/bool.rst:51 +msgid "Return :c:data:`Py_True` from a function." +msgstr "Retorna :c:data:`Py_True` de uma função." + +#: ../../c-api/bool.rst:56 +msgid "" +"Return :c:data:`Py_True` or :c:data:`Py_False`, depending on the truth value " +"of *v*." +msgstr "" +"Retorna :c:data:`Py_True` ou :c:data:`Py_False`, dependendo do valor verdade " +"de *v*." diff --git a/c-api/buffer.po b/c-api/buffer.po new file mode 100644 index 000000000..be64ede7f --- /dev/null +++ b/c-api/buffer.po @@ -0,0 +1,1093 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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" + +#: ../../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." +msgstr "" +"Certos objetos disponíveis no Python envolvem o acesso a um vetor ou " +"*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 "" +"While each of these types have their own semantics, they share the common " +"characteristic of being backed by a possibly large memory buffer. It is " +"then desirable, in some situations, to access that buffer directly and " +"without intermediate copying." +msgstr "" +"Embora cada um desses tipos tenha sua própria semântica, eles compartilham a " +"característica comum de serem suportados por um buffer de memória " +"possivelmente grande. É desejável, em algumas situações, acessar esse buffer " +"diretamente e sem cópia intermediária." + +#: ../../c-api/buffer.rst:29 +msgid "" +"Python provides such a facility at the C and Python level in the form of " +"the :ref:`buffer protocol `. This protocol has two sides:" +msgstr "" +"Python fornece essa facilidade no nível C e Python sob a forma de :ref:" +"`protocolo de buffer `. Este protocolo tem dois lados:" + +#: ../../c-api/buffer.rst:34 +msgid "" +"on the producer side, a type can export a \"buffer interface\" which allows " +"objects of that type to expose information about their underlying buffer. " +"This interface is described in the section :ref:`buffer-structs`; for Python " +"see :ref:`python-buffer-protocol`." +msgstr "" +"do lado do produtor, um tipo pode exportar uma \"interface de buffer\" que " +"permite que objetos desse tipo exponham informações sobre o buffer " +"subjacente. Esta interface é descrita na seção :ref:`buffer-structs`; para " +"Python, consulte :ref:`python-buffer-protocol`." + +#: ../../c-api/buffer.rst:39 +msgid "" +"on the consumer side, several means are available to obtain a pointer to the " +"raw underlying data of an object (for example a method parameter). For " +"Python see :class:`memoryview`." +msgstr "" +"do lado do consumidor, vários meios estão disponíveis para obter o ponteiro " +"para os dados subjacentes de um objeto (por exemplo, um parâmetro de " +"método). Para Python, consulte :ref:`python-buffer-protocol`." + +#: ../../c-api/buffer.rst:43 +msgid "" +"Simple objects such as :class:`bytes` and :class:`bytearray` expose their " +"underlying buffer in byte-oriented form. Other forms are possible; for " +"example, the elements exposed by an :class:`array.array` can be multi-byte " +"values." +msgstr "" +"Objetos simples como :class:`bytes` e :class:`bytearray` expõem seu buffer " +"subjacente em uma forma orientada a byte. Outras formas são possíveis; por " +"exemplo, os elementos expostos por uma :class:`array.array` podem ser " +"valores de vários bytes." + +#: ../../c-api/buffer.rst:47 +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 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:55 +msgid "" +"There are two ways for a consumer of the buffer interface to acquire a " +"buffer over a target object:" +msgstr "" +"Existem duas maneiras para um consumidor da interface de buffer adquirir um " +"buffer em um objeto alvo:" + +#: ../../c-api/buffer.rst:58 +msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" +msgstr "chamar :c:func:`PyObject_GetBuffer` com os parâmetros certos;" + +#: ../../c-api/buffer.rst:60 +msgid "" +"call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " +"``y*``, ``w*`` or ``s*`` :ref:`format codes `." +msgstr "" +"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:63 +msgid "" +"In both cases, :c:func:`PyBuffer_Release` must be called when the buffer " +"isn't needed anymore. Failure to do so could lead to various issues such as " +"resource leaks." +msgstr "" +"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ários problemas, " +"tais como vazamentos de recursos." + +#: ../../c-api/buffer.rst:69 +msgid "" +"The buffer protocol is now accessible in Python, see :ref:`python-buffer-" +"protocol` and :class:`memoryview`." +msgstr "" +"O protocolo de buffer agora está acessível em Python, veja :ref:`python-" +"buffer-protocol` e :class:`memoryview`." + +#: ../../c-api/buffer.rst:75 +msgid "Buffer structure" +msgstr "Estrutura de Buffer" + +#: ../../c-api/buffer.rst:77 +msgid "" +"Buffer structures (or simply \"buffers\") are useful as a way to expose the " +"binary data from another object to the Python programmer. They can also be " +"used as a zero-copy slicing mechanism. Using their ability to reference a " +"block of memory, it is possible to expose any data to the Python programmer " +"quite easily. The memory could be a large, constant array in a C extension, " +"it could be a raw block of memory for manipulation before passing to an " +"operating system library, or it could be used to pass around structured data " +"in its native, in-memory format." +msgstr "" +"As estruturas de buffer (ou simplesmente \"buffers\") são úteis como uma " +"maneira de expor os dados binários de outro objeto para o programador " +"Python. Eles também podem ser usados como um mecanismo de cópia silenciosa. " +"Usando sua capacidade de fazer referência a um bloco de memória, é possível " +"expor facilmente qualquer dado ao programador Python. A memória pode ser uma " +"matriz grande e constante em uma extensão C, pode ser um bloco bruto de " +"memória para manipulação antes de passar para uma biblioteca do sistema " +"operacional, ou pode ser usado para transmitir dados estruturados no formato " +"nativo e formato de memória." + +#: ../../c-api/buffer.rst:86 +msgid "" +"Contrary to most data types exposed by the Python interpreter, buffers are " +"not :c:type:`PyObject` pointers but rather simple C structures. This allows " +"them to be created and copied very simply. When a generic wrapper around a " +"buffer is needed, a :ref:`memoryview ` object can be " +"created." +msgstr "" +"Ao contrário da maioria dos tipos de dados expostos pelo interpretador " +"Python, os buffers não são ponteiros :c:type:`PyObject` mas sim estruturas C " +"simples. Isso permite que eles sejam criados e copiados de forma muito " +"simples. Quando um invólucro genérico em torno de um buffer é necessário, um " +"objeto :ref:`memoryview ` pode ser criado." + +#: ../../c-api/buffer.rst:92 +msgid "" +"For short instructions how to write an exporting object, see :ref:`Buffer " +"Object Structures `. For obtaining a buffer, see :c:func:" +"`PyObject_GetBuffer`." +msgstr "" +"Para obter instruções curtas sobre como escrever um objeto exportador, " +"consulte :ref:`Buffer Object Structures `. Para obter um " +"buffer, veja :c:func:`PyObject_GetBuffer`." + +#: ../../c-api/buffer.rst:100 +msgid "" +"A pointer to the start of the logical structure described by the buffer " +"fields. This can be any location within the underlying physical memory block " +"of the exporter. For example, with negative :c:member:`~Py_buffer.strides` " +"the value may point to the end of the memory block." +msgstr "" +"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." + +#: ../../c-api/buffer.rst:105 +msgid "" +"For :term:`contiguous` arrays, the value points to the beginning of the " +"memory block." +msgstr "" +"Para vetores :term:`contíguos `, o valor aponta para o início do " +"bloco de memória." + +#: ../../c-api/buffer.rst:110 +msgid "" +"A new reference to the exporting object. The reference is owned by the " +"consumer and automatically released (i.e. reference count decremented) and " +"set to ``NULL`` by :c:func:`PyBuffer_Release`. The field is the equivalent " +"of the return value of any standard C-API function." +msgstr "" +"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 equivale ao valor de retorno de qualquer função " +"padrão da API C." + +#: ../../c-api/buffer.rst:117 +msgid "" +"As a special case, for *temporary* buffers that are wrapped by :c:func:" +"`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " +"``NULL``. In general, exporting objects MUST NOT use this scheme." +msgstr "" +"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:124 +msgid "" +"``product(shape) * itemsize``. For contiguous arrays, this is the length of " +"the underlying memory block. For non-contiguous arrays, it is the length " +"that the logical structure would have if it were copied to a contiguous " +"representation." +msgstr "" +"``product(shape) * itemsize``. Para matrizes contíguas, este é o comprimento " +"do bloco de memória subjacente. Para matrizes não contíguas, é o comprimento " +"que a estrutura lógica teria se fosse copiado para uma representação " +"contígua." + +#: ../../c-api/buffer.rst:129 +msgid "" +"Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " +"the buffer has been obtained by a request that guarantees contiguity. In " +"most cases such a request will be :c:macro:`PyBUF_SIMPLE` or :c:macro:" +"`PyBUF_WRITABLE`." +msgstr "" +"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`." + +#: ../../c-api/buffer.rst:135 +msgid "" +"An indicator of whether the buffer is read-only. This field is controlled by " +"the :c:macro:`PyBUF_WRITABLE` flag." +msgstr "" +"Um indicador de se o buffer é somente leitura. Este campo é controlado pelo " +"sinalizador :c:macro:`PyBUF_WRITABLE`." + +#: ../../c-api/buffer.rst:140 +msgid "" +"Item size in bytes of a single element. Same as the value of :func:`struct." +"calcsize` called on non-``NULL`` :c:member:`~Py_buffer.format` values." +msgstr "" +"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:143 +msgid "" +"Important exception: If a consumer requests a buffer without the :c:macro:" +"`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to " +"``NULL``, but :c:member:`~Py_buffer.itemsize` still has the value for the " +"original format." +msgstr "" +"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:148 +msgid "" +"If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " +"itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." +"itemsize` to navigate the buffer." +msgstr "" +"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." + +#: ../../c-api/buffer.rst:152 +msgid "" +"If :c:member:`~Py_buffer.shape` is ``NULL`` as a result of a :c:macro:" +"`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " +"disregard :c:member:`~Py_buffer.itemsize` and assume ``itemsize == 1``." +msgstr "" +"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:158 +msgid "" +"A *NULL* terminated string in :mod:`struct` module style syntax describing " +"the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " +"bytes) is assumed." +msgstr "" +"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) é presumido." + +#: ../../c-api/buffer.rst:162 +msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." +msgstr "Este campo é controlado pelo sinalizador :c:macro:`PyBUF_FORMAT`." + +#: ../../c-api/buffer.rst:166 +msgid "" +"The number of dimensions the memory represents as an n-dimensional array. If " +"it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " +"a scalar. In this case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." +"strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``. The maximum " +"number of dimensions is given by :c:macro:`PyBUF_MAX_NDIM`." +msgstr "" +"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`." + +#: ../../c-api/buffer.rst:174 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " +"indicating the shape of the memory as an n-dimensional array. Note that " +"``shape[0] * ... * shape[ndim-1] * itemsize`` MUST be equal to :c:member:" +"`~Py_buffer.len`." +msgstr "" +"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:179 +msgid "" +"Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " +"requires special attention. See `complex arrays`_ for further information." +msgstr "" +"Os valores da forma são restritos a ``shape[n] >= 0``. The case ``shape[n] " +"== 0`` requer atenção especial. Veja `complex arrays`_ para mais informações." + +#: ../../c-api/buffer.rst:183 +msgid "The shape array is read-only for the consumer." +msgstr "A forma de acesso a matriz é de somente leitura para o usuário." + +#: ../../c-api/buffer.rst:187 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " +"giving the number of bytes to skip to get to a new element in each dimension." +msgstr "" +"Um vetor de :c:type:`Py_ssize_t` de comprimento :c:member:`~Py_buffer.ndim` " +"dando o número de bytes para saltar para obter um novo elemento em cada " +"dimensão." + +#: ../../c-api/buffer.rst:191 +msgid "" +"Stride values can be any integer. For regular arrays, strides are usually " +"positive, but a consumer MUST be able to handle the case ``strides[n] <= " +"0``. See `complex arrays`_ for further information." +msgstr "" +"Os valores de Stride podem ser qualquer número inteiro. Para arrays " +"regulares, os passos são geralmente positivos, mas um consumidor DEVE ser " +"capaz de lidar com o caso ``strides[n] <= 0``. Veja `complex arrays`_ para " +"mais informações." + +#: ../../c-api/buffer.rst:195 +msgid "The strides array is read-only for the consumer." +msgstr "A matriz de passos é somente leitura para o consumidor." + +#: ../../c-api/buffer.rst:199 +msgid "" +"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " +"``suboffsets[n] >= 0``, the values stored along the nth dimension are " +"pointers and the suboffset value dictates how many bytes to add to each " +"pointer after de-referencing. A suboffset value that is negative indicates " +"that no de-referencing should occur (striding in a contiguous memory block)." +msgstr "" +"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:206 +msgid "" +"If all suboffsets are negative (i.e. no de-referencing is needed), then this " +"field must be ``NULL`` (the default value)." +msgstr "" +"Se todos os subconjuntos forem negativos (ou seja, não é necessário fazer " +"referência), então este campo deve ser ``NULL`` (o valor padrão)." + +#: ../../c-api/buffer.rst:209 +msgid "" +"This type of array representation is used by the Python Imaging Library " +"(PIL). See `complex arrays`_ for further information how to access elements " +"of such an array." +msgstr "" +"Esse tipo de representação de matriz é usado pela Python Imaging Library " +"(PIL). Veja `complex arrays`_ para obter mais informações sobre como acessar " +"elementos dessa matriz.a matriz." + +#: ../../c-api/buffer.rst:213 +msgid "The suboffsets array is read-only for the consumer." +msgstr "A matriz de subconjuntos é somente leitura para o consumidor." + +#: ../../c-api/buffer.rst:217 +msgid "" +"This is for use internally by the exporting object. For example, this might " +"be re-cast as an integer by the exporter and used to store flags about " +"whether or not the shape, strides, and suboffsets arrays must be freed when " +"the buffer is released. The consumer MUST NOT alter this value." +msgstr "" +"Isso é para uso interno pelo objeto exportador. Por exemplo, isso pode ser " +"re-moldado como um número inteiro pelo exportador e usado para armazenar " +"bandeiras sobre se os conjuntos de forma, passos e suboffsets devem ou não " +"ser liberados quando o buffer é liberado. O consumidor NÃO DEVE alterar esse " +"valor." + +#: ../../c-api/buffer.rst:224 +msgid "Constants:" +msgstr "Constantes:" + +#: ../../c-api/buffer.rst:228 +msgid "" +"The maximum number of dimensions the memory represents. Exporters MUST " +"respect this limit, consumers of multi-dimensional buffers SHOULD be able to " +"handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions. Currently set to 64." +msgstr "" +"O número máximo de dimensões que a memória representa. Exportadores DEVEM " +"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:237 +msgid "Buffer request types" +msgstr "Tipos de solicitação do buffer" + +#: ../../c-api/buffer.rst:239 +msgid "" +"Buffers are usually obtained by sending a buffer request to an exporting " +"object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " +"structure of the memory can vary drastically, the consumer uses the *flags* " +"argument to specify the exact buffer type it can handle." +msgstr "" +"Os buffers geralmente são obtidos enviando uma solicitação de buffer para um " +"objeto exportador via :c:func:`PyObject_GetBuffer`. Uma vez que a " +"complexidade da estrutura lógica da memória pode variar drasticamente, o " +"consumidor usa o argumento *flags* para especificar o tipo de buffer exato " +"que pode manipular." + +#: ../../c-api/buffer.rst:244 +msgid "" +"All :c:type:`Py_buffer` fields are unambiguously defined by the request type." +msgstr "" +"Todos os campos :c:type:`Py_buffer` são definidos de forma não-ambígua pelo " +"tipo de requisição." + +#: ../../c-api/buffer.rst:248 +msgid "request-independent fields" +msgstr "campos independentes do pedido" + +#: ../../c-api/buffer.rst:249 +msgid "" +"The following fields are not influenced by *flags* and must always be filled " +"in with the correct values: :c:member:`~Py_buffer.obj`, :c:member:" +"`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer." +"itemsize`, :c:member:`~Py_buffer.ndim`." +msgstr "" +"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`." + +#: ../../c-api/buffer.rst:254 +msgid "readonly, format" +msgstr "apenas em formato" + +#: ../../c-api/buffer.rst:258 +msgid "" +"Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " +"MUST provide a writable buffer or else report failure. Otherwise, the " +"exporter MAY provide either a read-only or writable buffer, but the choice " +"MUST be consistent for all consumers. For example, :c:expr:`PyBUF_SIMPLE | " +"PyBUF_WRITABLE` can be used to request a simple writable buffer." +msgstr "" +"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:266 +msgid "This is a :term:`soft deprecated` alias to :c:macro:`PyBUF_WRITABLE`." +msgstr "" +"Este é um apelido :term:`suavemente descontinuado` para :c:macro:" +"`PyBUF_WRITABLE`." + +#: ../../c-api/buffer.rst:270 +msgid "" +"Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " +"filled in correctly. Otherwise, this field MUST be ``NULL``." +msgstr "" +"Controla o campo :c:member:`~Py_buffer.format`. Se configurado, este campo " +"DEVE ser preenchido corretamente. Caso contrário, este campo DEVE ser " +"``NULL``." + +#: ../../c-api/buffer.rst:274 +msgid "" +":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " +"section. Since :c:macro:`PyBUF_SIMPLE` is defined as 0, :c:macro:" +"`PyBUF_WRITABLE` can be used as a stand-alone flag to request a simple " +"writable buffer." +msgstr "" +"::c: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 " +"solicitar um buffer simples gravável." + +#: ../../c-api/buffer.rst:278 +msgid "" +":c:macro:`PyBUF_FORMAT` must be \\|'d to any of the flags except :c:macro:" +"`PyBUF_SIMPLE`, because the latter already implies format ``B`` (unsigned " +"bytes). :c:macro:`!PyBUF_FORMAT` cannot be used on its own." +msgstr "" +":c: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:284 +msgid "shape, strides, suboffsets" +msgstr "forma, avanços, suboffsets" + +#: ../../c-api/buffer.rst:286 +msgid "" +"The flags that control the logical structure of the memory are listed in " +"decreasing order of complexity. Note that each flag contains all bits of the " +"flags below it." +msgstr "" +"As bandeiras que controlam a estrutura lógica da memória estão listadas em " +"ordem decrescente de complexidade. Observe que cada bandeira contém todos os " +"bits das bandeiras abaixo." + +#: ../../c-api/buffer.rst:293 ../../c-api/buffer.rst:317 +#: ../../c-api/buffer.rst:342 +msgid "Request" +msgstr "Solicitação" + +#: ../../c-api/buffer.rst:293 ../../c-api/buffer.rst:317 +#: ../../c-api/buffer.rst:342 +msgid "shape" +msgstr "Forma" + +#: ../../c-api/buffer.rst:293 ../../c-api/buffer.rst:317 +#: ../../c-api/buffer.rst:342 +msgid "strides" +msgstr "Avanços" + +#: ../../c-api/buffer.rst:293 ../../c-api/buffer.rst:317 +#: ../../c-api/buffer.rst:342 +msgid "suboffsets" +msgstr "subconjuntos" + +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:297 +#: ../../c-api/buffer.rst:299 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:321 ../../c-api/buffer.rst:323 +#: ../../c-api/buffer.rst:325 ../../c-api/buffer.rst:344 +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:348 +#: ../../c-api/buffer.rst:350 ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:354 ../../c-api/buffer.rst:356 +#: ../../c-api/buffer.rst:358 +msgid "yes" +msgstr "sim" + +#: ../../c-api/buffer.rst:295 ../../c-api/buffer.rst:344 +#: ../../c-api/buffer.rst:346 +msgid "if needed" +msgstr "se necessário" + +#: ../../c-api/buffer.rst:297 ../../c-api/buffer.rst:299 +#: ../../c-api/buffer.rst:301 ../../c-api/buffer.rst:319 +#: ../../c-api/buffer.rst:321 ../../c-api/buffer.rst:323 +#: ../../c-api/buffer.rst:325 ../../c-api/buffer.rst:348 +#: ../../c-api/buffer.rst:350 ../../c-api/buffer.rst:352 +#: ../../c-api/buffer.rst:354 ../../c-api/buffer.rst:356 +#: ../../c-api/buffer.rst:358 +msgid "NULL" +msgstr "NULL" + +#: ../../c-api/buffer.rst:308 +msgid "contiguity requests" +msgstr "requisições contíguas" + +#: ../../c-api/buffer.rst:310 +msgid "" +"C or Fortran :term:`contiguity ` can be explicitly requested, " +"with and without stride information. Without stride information, the buffer " +"must be C-contiguous." +msgstr "" +":term:`contiguity ` do C ou Fortran podem ser explicitamente " +"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:317 ../../c-api/buffer.rst:342 +msgid "contig" +msgstr "contig" + +#: ../../c-api/buffer.rst:319 ../../c-api/buffer.rst:325 +#: ../../c-api/buffer.rst:356 ../../c-api/buffer.rst:358 +msgid "C" +msgstr "C" + +#: ../../c-api/buffer.rst:321 +msgid "F" +msgstr "F" + +#: ../../c-api/buffer.rst:323 +msgid "C or F" +msgstr "C ou F" + +#: ../../c-api/buffer.rst:325 +msgid ":c:macro:`PyBUF_ND`" +msgstr ":c:macro:`PyBUF_ND`" + +#: ../../c-api/buffer.rst:330 +msgid "compound requests" +msgstr "requisições compostas" + +#: ../../c-api/buffer.rst:332 +msgid "" +"All possible requests are fully defined by some combination of the flags in " +"the previous section. For convenience, the buffer protocol provides " +"frequently used combinations as single flags." +msgstr "" +"Todas as requisições possíveis foram completamente definidas por alguma " +"combinação dos sinalizadores na seção anterior. Por conveniência, o " +"protocolo do buffer fornece combinações frequentemente utilizadas como " +"sinalizadores únicos." + +#: ../../c-api/buffer.rst:336 +msgid "" +"In the following table *U* stands for undefined contiguity. The consumer " +"would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." +msgstr "" +"Na seguinte tabela *U* significa contiguidade indefinida. O consumidor deve " +"chamar :c:func:`PyBuffer_IsContiguous` para determinar a contiguidade." + +#: ../../c-api/buffer.rst:342 +msgid "readonly" +msgstr "readonly" + +#: ../../c-api/buffer.rst:342 +msgid "format" +msgstr "format" + +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:346 +#: ../../c-api/buffer.rst:348 ../../c-api/buffer.rst:350 +#: ../../c-api/buffer.rst:352 ../../c-api/buffer.rst:354 +msgid "U" +msgstr "U" + +#: ../../c-api/buffer.rst:344 ../../c-api/buffer.rst:348 +#: ../../c-api/buffer.rst:352 ../../c-api/buffer.rst:356 +msgid "0" +msgstr "0" + +#: ../../c-api/buffer.rst:346 ../../c-api/buffer.rst:350 +#: ../../c-api/buffer.rst:354 ../../c-api/buffer.rst:358 +msgid "1 or 0" +msgstr "1 ou 0" + +#: ../../c-api/buffer.rst:363 +msgid "Complex arrays" +msgstr "Vetores Complexos" + +#: ../../c-api/buffer.rst:366 +msgid "NumPy-style: shape and strides" +msgstr "Estilo NumPy: forma e avanços" + +#: ../../c-api/buffer.rst:368 +msgid "" +"The logical structure of NumPy-style arrays is defined by :c:member:" +"`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." +"shape` and :c:member:`~Py_buffer.strides`." +msgstr "" +"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:371 +msgid "" +"If ``ndim == 0``, the memory location pointed to by :c:member:`~Py_buffer." +"buf` is interpreted as a scalar of size :c:member:`~Py_buffer.itemsize`. In " +"that case, both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer." +"strides` are ``NULL``." +msgstr "" +"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:375 +msgid "" +"If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " +"standard n-dimensional C-array. Otherwise, the consumer must access an n-" +"dimensional array as follows:" +msgstr "" +"Se :c:member:`~Py_buffer.strides` é ``NULL``, o vetor é interpretado como um " +"vetor C n-dimensional padrão. Caso contrário, o consumidor deve acessar um " +"vetor n-dimensional como a seguir:" + +#: ../../c-api/buffer.rst:379 +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:385 +msgid "" +"As noted above, :c:member:`~Py_buffer.buf` can point to any location within " +"the actual memory block. An exporter can check the validity of a buffer with " +"this function:" +msgstr "" +"Como notado acima, :c:member:`~Py_buffer.buf` pode apontar para qualquer " +"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:389 +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:419 +msgid "PIL-style: shape, strides and suboffsets" +msgstr "Estilo-PIL: forma, avanços e suboffsets" + +#: ../../c-api/buffer.rst:421 +msgid "" +"In addition to the regular items, PIL-style arrays can contain pointers that " +"must be followed in order to get to the next element in a dimension. For " +"example, the regular three-dimensional C-array ``char v[2][2][3]`` can also " +"be viewed as an array of 2 pointers to 2 two-dimensional arrays: ``char " +"(*v[2])[2][3]``. In suboffsets representation, those two pointers can be " +"embedded at the start of :c:member:`~Py_buffer.buf`, pointing to two ``char " +"x[2][3]`` arrays that can be located anywhere in memory." +msgstr "" +"Além dos itens normais, uma matriz em estilo PIL pode conter ponteiros que " +"devem ser seguidos para se obter o próximo elemento em uma dimensão. Por " +"exemplo, a matriz tridimensional em C ``char v[2][2][3]`` também pode ser " +"vista como um vetor de 2 ponteiros para duas matrizes bidimensionais: ``char " +"(*v[2])[2][3]``. Na representação por suboffsets, esses dois ponteiros podem " +"ser embutidos no início de :c:member:`~Py_buffer.buf`, apontando para duas " +"matrizes ``char x[2][3]`` que podem estar localizadas em qualquer lugar na " +"memória." + +#: ../../c-api/buffer.rst:430 +msgid "" +"Here is a function that returns a pointer to the element in an N-D array " +"pointed to by an N-dimensional index when there are both non-``NULL`` " +"strides and suboffsets::" +msgstr "" +"Esta é uma função que retorna um ponteiro para o elemento em uma matriz N-D " +"apontada por um índice N-dimensional onde existem ambos passos e " +"subconjuntos não-``NULL``::" + +#: ../../c-api/buffer.rst:434 +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:449 +msgid "Buffer-related functions" +msgstr "Funções relacionadas ao Buffer" + +#: ../../c-api/buffer.rst:453 +msgid "" +"Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " +"``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " +"will succeed. This function always succeeds." +msgstr "" +"Retorna ``1`` se *obj* oferece suporte à interface de buffer, se não, ``0``. " +"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:460 +msgid "" +"Send a request to *exporter* to fill in *view* as specified by *flags*. If " +"the exporter cannot provide a buffer of the exact type, it MUST raise :exc:" +"`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." +msgstr "" +"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:465 +msgid "" +"On success, fill in *view*, set ``view->obj`` to a new reference to " +"*exporter* and return 0. In the case of chained buffer providers that " +"redirect requests to a single object, ``view->obj`` MAY refer to this object " +"instead of *exporter* (See :ref:`Buffer Object Structures `)." +msgstr "" +"Em caso de sucesso, preenche *view*, define ``view->obj`` para uma nova " +"referência para *exporter* e retorna 0. No caso de provedores de buffer " +"encadeados que redirecionam requisições para um único objeto, ``view->obj`` " +"DEVE se referir a este objeto em vez de *exporter* (Veja :ref:`Buffer Object " +"Structures `)." + +#: ../../c-api/buffer.rst:470 +msgid "" +"Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " +"to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` and :c:func:" +"`free`. Thus, after the consumer is done with the buffer, :c:func:" +"`PyBuffer_Release` must be called exactly once." +msgstr "" +"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." + +#: ../../c-api/buffer.rst:478 +msgid "" +"Release the buffer *view* and release the :term:`strong reference` (i.e. " +"decrement the reference count) to the view's supporting object, ``view-" +">obj``. This function MUST be called when the buffer is no longer being " +"used, otherwise reference leaks may occur." +msgstr "" +"Libera o buffer de *view* e libera o :term:`strong reference` (por exemplo, " +"decrementa o contador de referências) para o objeto de suporte da view, " +"``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:483 +msgid "" +"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`." + +#: ../../c-api/buffer.rst:489 +msgid "" +"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." + +#: ../../c-api/buffer.rst:497 +msgid "" +"Return ``1`` if the memory defined by the *view* is C-style (*order* is " +"``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " +"one (*order* is ``'A'``). Return ``0`` otherwise. This function always " +"succeeds." +msgstr "" +"Retorna ``1`` se a memória definida pela *view* é :term:`contígua " +"` no estilo C (*order* é ``'C'``) ou no estilo Fortran (*order* é " +"``'F'``) ou qualquer outra (*order* é ``'A'``). Retorna ``0`` caso " +"contrário. Essa função é sempre bem sucedida." + +#: ../../c-api/buffer.rst:504 +msgid "" +"Get the memory area pointed to by the *indices* inside the given *view*. " +"*indices* must point to an array of ``view->ndim`` indices." +msgstr "" +"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:510 +msgid "" +"Copy contiguous *len* bytes from *buf* to *view*. *fort* can be ``'C'`` or " +"``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " +"success, ``-1`` on error." +msgstr "" +"Copia *len* bytes contíguos de *buf* para *view*. *fort* pode ser ``'C'`` ou " +"``'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:517 +msgid "" +"Copy *len* bytes from *src* to its contiguous representation in *buf*. " +"*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " +"ordering or either one). ``0`` is returned on success, ``-1`` on error." +msgstr "" +"Copia *len* bytes de *src* para sua representação contígua em *buf*. *order* " +"pode ser ``'C'`` ou ``'F'`` ou ``'A'`` (para ordenação estilo C, Fortran ou " +"qualquer uma). O retorno é ``0`` em caso de sucesso e ``-1`` em caso de " +"falha." + +#: ../../c-api/buffer.rst:521 +msgid "This function fails if *len* != *src->len*." +msgstr "Esta função falha se *len* != *src->len*." + +#: ../../c-api/buffer.rst:526 +msgid "" +"Copy data from *src* to *dest* buffer. Can convert between C-style and or " +"Fortran-style buffers." +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:529 +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:533 +msgid "" +"Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " +"if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " +"given shape with the given number of bytes per element." +msgstr "" +"Preenche o array *strides* com byte-strides de um array :term:`contíguo` " +"(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:540 +msgid "" +"Handle buffer requests for an exporter that wants to expose *buf* of size " +"*len* with writability set according to *readonly*. *buf* is interpreted as " +"a sequence of unsigned bytes." +msgstr "" +"Manipula requisições de buffer para um exportador que quer expor *buf* de " +"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:544 +msgid "" +"The *flags* argument indicates the request type. This function always fills " +"in *view* as specified by flags, unless *buf* has been designated as read-" +"only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." +msgstr "" +"O argumento *flags* indica o tipo de requisição. Esta função sempre preenche " +"*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:548 +msgid "" +"On success, set ``view->obj`` to a new reference to *exporter* and return 0. " +"Otherwise, raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and " +"return ``-1``;" +msgstr "" +"Em caso de sucesso, defina ``view->obj`` como um novo referência para " +"*exporter* e retorna 0. Caso contrário, levante :exc:`BufferError` , defina " +"``view->obj`` para ``NULL`` e retorne ``-1`` ;" + +#: ../../c-api/buffer.rst:552 +msgid "" +"If this function is used as part of a :ref:`getbufferproc `, " +"*exporter* MUST be set to the exporting object and *flags* must be passed " +"unmodified. Otherwise, *exporter* MUST be ``NULL``." +msgstr "" +"Se esta função é usada como parte de um :ref:`getbufferproc`, *exporter* DEVE ser definida para o objeto de exportação e " +"*flags* deve ser passado sem modificações. Caso contrário, *exporter* DEVE " +"ser ``NULL``." + +#: ../../c-api/buffer.rst:3 +msgid "buffer protocol" +msgstr "protocolo de buffer" + +#: ../../c-api/buffer.rst:3 +msgid "buffer interface" +msgstr "interface de buffer" + +#: ../../c-api/buffer.rst:3 +msgid "(see buffer protocol)" +msgstr "(veja o protocolo de buffer)" + +#: ../../c-api/buffer.rst:3 +msgid "buffer object" +msgstr "objeto buffer" + +#: ../../c-api/buffer.rst:32 +msgid "PyBufferProcs (C type)" +msgstr "PyBufferProcs (tipo C)" + +#: ../../c-api/buffer.rst:305 +msgid "contiguous" +msgstr "contíguo" + +#: ../../c-api/buffer.rst:305 +msgid "C-contiguous" +msgstr "contíguo C" + +#: ../../c-api/buffer.rst:305 +msgid "Fortran contiguous" +msgstr "contíguo Fortran" diff --git a/c-api/bytearray.po b/c-api/bytearray.po new file mode 100644 index 000000000..8bef9e395 --- /dev/null +++ b/c-api/bytearray.po @@ -0,0 +1,162 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# Wagner Marques Oliveira , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-09 15:35+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+0000\n" +"Last-Translator: Wagner Marques Oliveira , 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" +"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" + +#: ../../c-api/bytearray.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python bytearray object." +msgstr "" +"Esse subtipo de :c:type:`PyObject` representa um objeto Python bytearray." + +#: ../../c-api/bytearray.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python bytearray " +"type; it is the same object as :class:`bytearray` in the Python layer." +msgstr "" +"Essa instância de :c:type:`PyTypeObject` representa um tipo Python " +"bytearray; é o mesmo objeto que o :class:`bytearray` na camada Python." + +#: ../../c-api/bytearray.rst:23 +msgid "Type check macros" +msgstr "Macros para verificação de tipo" + +#: ../../c-api/bytearray.rst:27 +msgid "" +"Return true if the object *o* is a bytearray object or an instance of a " +"subtype of the bytearray type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se o objeto *o* for um objeto bytearray ou se for uma " +"instância de um subtipo do tipo bytearray. Esta função sempre tem sucesso." + +#: ../../c-api/bytearray.rst:33 +msgid "" +"Return true if the object *o* is a bytearray object, but not an instance of " +"a subtype of the bytearray type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se o objeto *o* for um objeto bytearray, mas não uma " +"instância de um subtipo do tipo bytearray. Esta função sempre tem sucesso." + +#: ../../c-api/bytearray.rst:38 +msgid "Direct API functions" +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 `." +msgstr "" +"Retorna um novo objeto bytearray, *o*, que implementa o :ref:`protocolo de " +"buffer`." + +#: ../../c-api/bytearray.rst:45 ../../c-api/bytearray.rst:56 +#: ../../c-api/bytearray.rst:63 +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:48 ../../c-api/bytearray.rst:66 +msgid "" +"If the object implements the buffer protocol, then the buffer must not be " +"mutated while the bytearray object is being created." +msgstr "" +"Se o objeto implementar o protocolo de buffer, o buffer não deve ser " +"alterado enquanto o objeto bytearray estiver sendo criado." + +#: ../../c-api/bytearray.rst:54 +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*." + +#: ../../c-api/bytearray.rst:61 +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:72 +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:77 +msgid "" +"Return the contents of *bytearray* as a char array after checking for a " +"``NULL`` pointer. The returned array always has an extra null byte appended." +msgstr "" +"Retorna o conteúdo de *bytearray* como uma matriz de caracteres após " +"verificar um ponteiro ``NULL``. O array retornado sempre tem um byte nulo " +"extra acrescentado." + +#: ../../c-api/bytearray.rst:82 ../../c-api/bytearray.rst:104 +msgid "" +"It is not thread-safe to mutate the bytearray object while using the " +"returned char array." +msgstr "" +"Não é seguro para thread alterar o objeto bytearray enquanto o vetor de char " +"retornado estiver em uso." + +#: ../../c-api/bytearray.rst:87 +msgid "" +"Resize the internal buffer of *bytearray* to *len*. Failure is a ``-1`` " +"return with an exception set." +msgstr "" +"Redimensiona o buffer interno de *bytearray* para o tamanho *len*. Falha é " +"um retorno ``-1`` com um conjunto de exceções." + +#: ../../c-api/bytearray.rst:90 +msgid "" +"A negative *len* will now result in an exception being set and -1 returned." +msgstr "" +"Um *len* negativo agora resultará na definição de uma exceção e no retorno " +"de -1." + +#: ../../c-api/bytearray.rst:95 +msgid "Macros" +msgstr "Macros" + +#: ../../c-api/bytearray.rst:97 +msgid "These macros trade safety for speed and they don't check pointers." +msgstr "" +"Estas macros trocam segurança por velocidade e não verificam os ponteiros." + +#: ../../c-api/bytearray.rst:101 +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:109 +msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking." +msgstr "Similar a :c:func:`PyByteArray_Size`, mas sem verificação de erro." + +#: ../../c-api/bytearray.rst:8 +msgid "object" +msgstr "objeto" + +#: ../../c-api/bytearray.rst:8 +msgid "bytearray" +msgstr "bytearray" diff --git a/c-api/bytes.po b/c-api/bytes.po new file mode 100644 index 000000000..3b6de3d65 --- /dev/null +++ b/c-api/bytes.po @@ -0,0 +1,530 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/bytes.rst:6 +msgid "Bytes Objects" +msgstr "Objetos bytes" + +#: ../../c-api/bytes.rst:8 +msgid "" +"These functions raise :exc:`TypeError` when expecting a bytes parameter and " +"called with a non-bytes parameter." +msgstr "" +"Estas funções levantam :exc:`TypeError` quando se espera um parâmetro bytes " +"e são chamados com um parâmetro que não é bytes." + +#: ../../c-api/bytes.rst:16 +msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." +msgstr "" +"Esta é uma instância de :c:type:`PyObject` representando o objeto bytes do " +"Python." + +#: ../../c-api/bytes.rst:21 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python bytes type; it " +"is the same object as :class:`bytes` in the Python layer." +msgstr "" +"Esta instância de :c:type:`PyTypeObject` representa o tipo de bytes Python; " +"é o mesmo objeto que :class:`bytes` na camada de Python." + +#: ../../c-api/bytes.rst:27 +msgid "" +"Return true if the object *o* is a bytes object or an instance of a subtype " +"of the bytes type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se o objeto *o* for um objeto bytes ou se for uma " +"instância de um subtipo do tipo bytes. Esta função sempre tem sucesso." + +#: ../../c-api/bytes.rst:33 +msgid "" +"Return true if the object *o* is a bytes object, but not an instance of a " +"subtype of the bytes type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se o objeto *o* for um objeto bytes, mas não uma " +"instância de um subtipo do tipo bytes. Esta função sempre tem sucesso." + +#: ../../c-api/bytes.rst:39 +msgid "" +"Return a new bytes object with a copy of the string *v* as value on success, " +"and ``NULL`` on failure. The parameter *v* must not be ``NULL``; it will " +"not be checked." +msgstr "" +"Retorna um novo objeto de bytes com uma cópia da string *v* como valor em " +"caso de sucesso e ``NULL`` em caso de falha. O parâmetro *v* não deve ser " +"``NULL`` e isso não será verificado." + +#: ../../c-api/bytes.rst:46 +msgid "" +"Return a new bytes object with a copy of the string *v* as value and length " +"*len* on success, and ``NULL`` on failure. If *v* is ``NULL``, the contents " +"of the bytes object are uninitialized." +msgstr "" +"Retorna um novo objeto de bytes com uma cópia da string *v* como valor e " +"comprimento *len* em caso de sucesso e ``NULL`` em caso de falha. Se *v* for " +"``NULL``, o conteúdo do objeto bytes não será inicializado." + +#: ../../c-api/bytes.rst:53 +msgid "" +"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " +"arguments, calculate the size of the resulting Python bytes object and " +"return a bytes object with the values formatted into it. The variable " +"arguments must be C types and must correspond exactly to the format " +"characters in the *format* string. The following format characters are " +"allowed:" +msgstr "" +"Leva uma string tipo :c:func:`printf` do C *format* e um número variável de " +"argumentos, calcula o tamanho do objeto bytes do Python resultante e retorna " +"um objeto bytes com os valores formatados nela. Os argumentos da variável " +"devem ser tipos C e devem corresponder exatamente aos caracteres de formato " +"na string *format*. Os seguintes formatos de caracteres são permitidos:" + +#: ../../c-api/bytes.rst:65 +msgid "Format Characters" +msgstr "Caracteres Formatados" + +#: ../../c-api/bytes.rst:65 +msgid "Type" +msgstr "Tipo" + +#: ../../c-api/bytes.rst:65 +msgid "Comment" +msgstr "Comentário" + +#: ../../c-api/bytes.rst:67 +msgid "``%%``" +msgstr "``%%``" + +#: ../../c-api/bytes.rst:67 +msgid "*n/a*" +msgstr "*n/d*" + +#: ../../c-api/bytes.rst:67 +msgid "The literal % character." +msgstr "O caractere literal %." + +#: ../../c-api/bytes.rst:69 +msgid "``%c``" +msgstr "``%c``" + +#: ../../c-api/bytes.rst:69 ../../c-api/bytes.rst:72 ../../c-api/bytes.rst:90 +#: ../../c-api/bytes.rst:93 +msgid "int" +msgstr "int" + +#: ../../c-api/bytes.rst:69 +msgid "A single byte, represented as a C int." +msgstr "Um único byte, representado como um C int." + +#: ../../c-api/bytes.rst:72 +msgid "``%d``" +msgstr "``%d``" + +#: ../../c-api/bytes.rst:72 +msgid "Equivalent to ``printf(\"%d\")``. [1]_" +msgstr "Equivalente a ``printf(\"%d\")``. [1]_" + +#: ../../c-api/bytes.rst:75 +msgid "``%u``" +msgstr "``%u``" + +#: ../../c-api/bytes.rst:75 +msgid "unsigned int" +msgstr "unsigned int" + +#: ../../c-api/bytes.rst:75 +msgid "Equivalent to ``printf(\"%u\")``. [1]_" +msgstr "Equivalente a ``printf(\"%u\")``. [1]_" + +#: ../../c-api/bytes.rst:78 +msgid "``%ld``" +msgstr "``%ld``" + +#: ../../c-api/bytes.rst:78 +msgid "long" +msgstr "long" + +#: ../../c-api/bytes.rst:78 +msgid "Equivalent to ``printf(\"%ld\")``. [1]_" +msgstr "Equivalente a ``printf(\"%ld\")``. [1]_" + +#: ../../c-api/bytes.rst:81 +msgid "``%lu``" +msgstr "``%lu``" + +#: ../../c-api/bytes.rst:81 +msgid "unsigned long" +msgstr "unsigned long" + +#: ../../c-api/bytes.rst:81 +msgid "Equivalent to ``printf(\"%lu\")``. [1]_" +msgstr "Equivalente a ``printf(\"%lu\")``. [1]_" + +#: ../../c-api/bytes.rst:84 +msgid "``%zd``" +msgstr "``%zd``" + +#: ../../c-api/bytes.rst:84 +msgid ":c:type:`\\ Py_ssize_t`" +msgstr ":c:type:`\\ Py_ssize_t`" + +#: ../../c-api/bytes.rst:84 +msgid "Equivalent to ``printf(\"%zd\")``. [1]_" +msgstr "Equivalente a ``printf(\"%zd\")``. [1]_" + +#: ../../c-api/bytes.rst:87 +msgid "``%zu``" +msgstr "``%zu``" + +#: ../../c-api/bytes.rst:87 +msgid "size_t" +msgstr "size_t" + +#: ../../c-api/bytes.rst:87 +msgid "Equivalent to ``printf(\"%zu\")``. [1]_" +msgstr "Equivalente a ``printf(\"%zu\")``. [1]_" + +#: ../../c-api/bytes.rst:90 +msgid "``%i``" +msgstr "``%i``" + +#: ../../c-api/bytes.rst:90 +msgid "Equivalent to ``printf(\"%i\")``. [1]_" +msgstr "Equivalente a ``printf(\"%i\")``. [1]_" + +#: ../../c-api/bytes.rst:93 +msgid "``%x``" +msgstr "``%x``" + +#: ../../c-api/bytes.rst:93 +msgid "Equivalent to ``printf(\"%x\")``. [1]_" +msgstr "Equivalente a ``printf(\"%x\")``. [1]_" + +#: ../../c-api/bytes.rst:96 +msgid "``%s``" +msgstr "``%s``" + +#: ../../c-api/bytes.rst:96 +msgid "const char\\*" +msgstr "const char\\*" + +#: ../../c-api/bytes.rst:96 +msgid "A null-terminated C character array." +msgstr "Uma matriz de caracteres C com terminação nula." + +#: ../../c-api/bytes.rst:99 +msgid "``%p``" +msgstr "``%p``" + +#: ../../c-api/bytes.rst:99 +msgid "const void\\*" +msgstr "const void\\*" + +#: ../../c-api/bytes.rst:99 +msgid "" +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." +msgstr "" +"A representação hexadecimal de um ponteiro C. Principalmente equivalente a " +"``printf(\"%p\")`` exceto que é garantido que comece com o literal ``0x`` " +"independentemente do que o ``printf`` da plataforma ceda." + +#: ../../c-api/bytes.rst:108 +msgid "" +"An unrecognized format character causes all the rest of the format string to " +"be copied as-is to the result object, and any extra arguments discarded." +msgstr "" +"Um caractere de formato não reconhecido faz com que todo o resto da string " +"de formato seja copiado como é para o objeto resultante e todos os " +"argumentos extras sejam descartados." + +#: ../../c-api/bytes.rst:111 +msgid "" +"For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " +"has effect even when a precision is given." +msgstr "" +"Para especificadores de número inteiro (d, u, ld, lu, zd, zu, i, x): o " +"sinalizador de conversão 0 tem efeito mesmo quando uma precisão é fornecida." + +#: ../../c-api/bytes.rst:117 +msgid "" +"Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " +"arguments." +msgstr "" +"Idêntico a :c:func:`PyBytes_FromFormat` exceto que é preciso exatamente dois " +"argumentos." + +#: ../../c-api/bytes.rst:123 +msgid "" +"Return the bytes representation of object *o* that implements the buffer " +"protocol." +msgstr "" +"Retorna a representação de bytes do objeto *o* que implementa o protocolo de " +"buffer." + +#: ../../c-api/bytes.rst:127 +msgid "" +"If the object implements the buffer protocol, then the buffer must not be " +"mutated while the bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:133 +msgid "Return the length of the bytes in bytes object *o*." +msgstr "Retorna o comprimento dos bytes em objeto bytes *o*." + +#: ../../c-api/bytes.rst:138 +msgid "Similar to :c:func:`PyBytes_Size`, but without error checking." +msgstr "Similar a :c:func:`PyBytes_Size`, mas sem verificação de erro." + +#: ../../c-api/bytes.rst:143 +msgid "" +"Return a pointer to the contents of *o*. The pointer refers to the internal " +"buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " +"buffer is always null, regardless of whether there are any other null " +"bytes. The data must not be modified in any way, unless the object was just " +"created using ``PyBytes_FromStringAndSize(NULL, size)``. It must not be " +"deallocated. If *o* is not a bytes object at all, :c:func:" +"`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." +msgstr "" +"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 " +"buffer é sempre nulo, independentemente de haver outros bytes nulos. Os " +"dados não devem ser modificados de forma alguma, a menos que o objeto tenha " +"sido criado usando ``PyBytes_FromStringAndSize(NULL, size)``. Não deve ser " +"desalocado. Se *o* não é um objeto de bytes, :c:func:`PyBytes_AsString` " +"retorna ``NULL`` e levanta :exc:`TypeError`." + +#: ../../c-api/bytes.rst:155 +msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking." +msgstr "Similar a :c:func:`PyBytes_AsString`, mas sem verificação de erro." + +#: ../../c-api/bytes.rst:160 +msgid "" +"Return the null-terminated contents of the object *obj* through the output " +"variables *buffer* and *length*. Returns ``0`` on success." +msgstr "" +"Retorna os conteúdos terminados nulos do objeto *obj* através das variáveis " +"de saída *buffer* e *length*. Retorna ``0`` em caso de sucesso." + +#: ../../c-api/bytes.rst:164 +msgid "" +"If *length* is ``NULL``, the bytes object may not contain embedded null " +"bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " +"raised." +msgstr "" +"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." + +#: ../../c-api/bytes.rst:168 +msgid "" +"The buffer refers to an internal buffer of *obj*, which includes an " +"additional null byte at the end (not counted in *length*). The data must " +"not be modified in any way, unless the object was just created using " +"``PyBytes_FromStringAndSize(NULL, size)``. It must not be deallocated. If " +"*obj* is not a bytes object at all, :c:func:`PyBytes_AsStringAndSize` " +"returns ``-1`` and raises :exc:`TypeError`." +msgstr "" +"O buffer refere-se a um buffer interno de *obj*, que inclui um byte nulo " +"adicional no final (não contado em *length*). Os dados não devem ser " +"modificados de forma alguma, a menos que o objeto tenha sido criado apenas " +"usando ``PyBytes_FromStringAndSize(NULL, size)``. Não deve ser desalinhado. " +"Se *obj* não é um objeto bytes, :c:func:`PyBytes_AsStringAndSize` retorna " +"``-1`` e levanta :exc:`TypeError`." + +#: ../../c-api/bytes.rst:175 +msgid "" +"Previously, :exc:`TypeError` was raised when embedded null bytes were " +"encountered in the bytes object." +msgstr "" +"Anteriormente :exc:`TypeError` era levantado quando os bytes nulos " +"incorporados eram encontrados no objeto bytes." + +#: ../../c-api/bytes.rst:182 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*; the caller will own the new reference. The reference " +"to the old value of *bytes* will be stolen. If the new object cannot be " +"created, the old reference to *bytes* will still be discarded and the value " +"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." +msgstr "" +"Cria um novo objeto de bytes em *\\*bytes* contendo o conteúdo de *newpart* " +"anexado a *bytes*; o chamador será o proprietário da nova referência. A " +"referência ao valor antigo de *bytes* será roubada. Se o novo objeto não " +"puder ser criado, a antiga referência a *bytes* ainda será descartada e o " +"valor de *\\*bytes* será definido como ``NULL``; a exceção apropriada será " +"definida." + +#: ../../c-api/bytes.rst:189 ../../c-api/bytes.rst:199 +msgid "" +"If *newpart* implements the buffer protocol, then the buffer must not be " +"mutated while the new bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:194 +msgid "" +"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " +"appended to *bytes*. This version releases the :term:`strong reference` to " +"*newpart* (i.e. decrements its reference count)." +msgstr "" +"\"Crie um novo objeto bytes em *\\*bytes* contendo o conteúdo de newpart " +"anexado a bytes. Esta versão libera a :term:`strong reference` (referência " +"forte) para newpart (ou seja, decrementa a contagem de referências a ele).\"" + +#: ../../c-api/bytes.rst:205 +msgid "Similar to ``sep.join(iterable)`` in Python." +msgstr "Similar a ``sep.join(iterable)`` no Python." + +#: ../../c-api/bytes.rst:207 +msgid "" +"*sep* must be Python :class:`bytes` object. (Note that :c:func:" +"`PyUnicode_Join` accepts ``NULL`` separator and treats it as a space, " +"whereas :c:func:`PyBytes_Join` doesn't accept ``NULL`` separator.)" +msgstr "" +"*sep* deve ser um objeto Python :class:`bytes`. (Observe que :c:func:" +"`PyUnicode_Join` aceita o separador ``NULL`` e o trata como um espaço, " +"enquanto :c:func:`PyBytes_Join` não aceita o separador ``NULL``.)" + +#: ../../c-api/bytes.rst:212 +msgid "" +"*iterable* must be an iterable object yielding objects that implement the :" +"ref:`buffer protocol `." +msgstr "" +"*iterable* deve ser um objeto iterável que produz objetos que implementam o :" +"ref:`protocolo de buffer `." + +#: ../../c-api/bytes.rst:215 +msgid "" +"On success, return a new :class:`bytes` object. On error, set an exception " +"and return ``NULL``." +msgstr "" +"Em caso de sucesso, retorna um novo objeto :class:`bytes`. Em caso de erro, " +"define uma exceção e retorna ``NULL``." + +#: ../../c-api/bytes.rst:221 +msgid "" +"If *iterable* objects implement the buffer protocol, then the buffers must " +"not be mutated while the new bytes object is being created." +msgstr "" + +#: ../../c-api/bytes.rst:226 +msgid "" +"Resize a bytes object. *newsize* will be the new length of the bytes object. " +"You can think of it as creating a new bytes object and destroying the old " +"one, only more efficiently. Pass the address of an existing bytes object as " +"an lvalue (it may be written into), and the new size desired. On success, " +"*\\*bytes* holds the resized bytes object and ``0`` is returned; the address " +"in *\\*bytes* may differ from its input value. If the reallocation fails, " +"the original bytes object at *\\*bytes* is deallocated, *\\*bytes* is set to " +"``NULL``, :exc:`MemoryError` is set, and ``-1`` is returned." +msgstr "" +"Redimensiona um objeto de bytes. *newsize* será o novo tamanho do objeto " +"bytes. Você pode pensar nisso como se estivesse criando um novo objeto de " +"bytes e destruindo o antigo, só que de forma mais eficiente. Passe o " +"endereço de um objeto de bytes existente como um lvalue (pode ser gravado) e " +"o novo tamanho desejado. Em caso de sucesso, *\\*bytes* mantém o objeto de " +"bytes redimensionados e ``0`` é retornado; o endereço em *\\*bytes* pode " +"diferir do seu valor de entrada. Se a realocação falhar, o objeto de bytes " +"originais em *\\*bytes* é desalocado, *\\*bytes* é definido como ``NULL``, :" +"exc:`MemoryError` é definido e ``-1`` é retornado." + +#: ../../c-api/bytes.rst:240 +msgid "" +"Get the string representation of *bytes*. This function is currently used to " +"implement :meth:`!bytes.__repr__` in Python." +msgstr "" +"Obtém a representação em string de *bytes*. Esta função é atualmente usada " +"para implementar :meth:`!bytes.__repr__` em Python." + +#: ../../c-api/bytes.rst:243 +msgid "" +"This function does not do type checking; it is undefined behavior to pass " +"*bytes* as a non-bytes object or ``NULL``." +msgstr "" +"Esta função não realiza verificação de tipo; é um comportamento indefinido " +"passar *bytes* como um objeto que não seja do tipo bytes ou ``NULL``." + +#: ../../c-api/bytes.rst:246 +msgid "" +"If *smartquotes* is true, the representation will use a double-quoted string " +"instead of single-quoted string when single-quotes are present in *bytes*. " +"For example, the byte string ``'Python'`` would be represented as " +"``b\"'Python'\"`` when *smartquotes* is true, or ``b'\\'Python\\''`` when it " +"is false." +msgstr "" +"Se *smartquotes* for verdadeiro, a representação usará uma string entre " +"aspas duplas em vez de aspas simples quando aspas simples estiverem " +"presentes em *bytes*. Por exemplo, a string de bytes ``'Python'`` seria " +"representada como ``b\"'Python'\"`` quando *smartquotes* for verdadeiro, ou " +"``b'\\'Python\\''`` quando for falso." + +#: ../../c-api/bytes.rst:252 +msgid "" +"On success, this function returns a :term:`strong reference` to a :class:" +"`str` object containing the representation. On failure, this returns " +"``NULL`` with an exception set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` a um " +"objeto :class:`str` contendo a representação. Em caso de falha, ela retorna " +"``NULL`` com uma exceção definida." + +#: ../../c-api/bytes.rst:259 +msgid "" +"Unescape a backslash-escaped string *s*. *s* must not be ``NULL``. *len* " +"must be the size of *s*." +msgstr "" +"Remove um string *s* que foi escapada com contrabarra. *s* não pode ser " +"``NULL``. *len* deve ser o tamanho de *s*." + +#: ../../c-api/bytes.rst:262 +msgid "" +"*errors* must be one of ``\"strict\"``, ``\"replace\"``, or ``\"ignore\"``. " +"If *errors* is ``NULL``, then ``\"strict\"`` is used by default." +msgstr "" +"*errors* deve ser um dos seguintes valores: ``\"strict\"``, ``\"replace\"`` " +"ou ``\"ignore\"``. Se *errors* for ``NULL``, o valor padrão será " +"``\"strict\"``." + +#: ../../c-api/bytes.rst:265 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python :" +"class:`bytes` object containing the unescaped string. On failure, this " +"function returns ``NULL`` with an exception set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` a um " +"objeto Python :class:`bytes` contendo a string sem escape. Em caso de falha, " +"esta função retorna ``NULL`` com uma exceção definida." + +#: ../../c-api/bytes.rst:269 +msgid "*unicode* and *recode_encoding* are now unused." +msgstr "*unicode* e *recode_encoding* não são mais usadas." + +#: ../../c-api/bytes.rst:11 +msgid "object" +msgstr "objeto" + +#: ../../c-api/bytes.rst:11 +msgid "bytes" +msgstr "bytes" diff --git a/c-api/call.po b/c-api/call.po new file mode 100644 index 000000000..762907846 --- /dev/null +++ b/c-api/call.po @@ -0,0 +1,734 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/call.rst:6 +msgid "Call Protocol" +msgstr "Protocolo de chamada" + +#: ../../c-api/call.rst:8 +msgid "" +"CPython supports two different calling protocols: *tp_call* and vectorcall." +msgstr "O CPython permite dois protocolos de chamada: *tp_call* e vectorcall." + +#: ../../c-api/call.rst:12 +msgid "The *tp_call* Protocol" +msgstr "O protocolo *tp_call*" + +#: ../../c-api/call.rst:14 +msgid "" +"Instances of classes that set :c:member:`~PyTypeObject.tp_call` are " +"callable. The signature of the slot is::" +msgstr "" +"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 " +"keyword arguments, similarly to ``callable(*args, **kwargs)`` in Python " +"code. *args* must be non-NULL (use an empty tuple if there are no arguments) " +"but *kwargs* may be *NULL* if there are no keyword arguments." +msgstr "" +"Uma chamada é feita usando uma tupla para os argumentos posicionais e um " +"dicionário para os argumentos nomeados, similar a ``callable(*args, " +"**kwargs)`` no Python. *args* não pode ser nulo (utilize uma tupla vazia se " +"não houver argumentos), mas *kwargs* pode ser *NULL* se não houver " +"argumentos nomeados." + +#: ../../c-api/call.rst:25 +msgid "" +"This convention is not only used by *tp_call*: :c:member:`~PyTypeObject." +"tp_new` and :c:member:`~PyTypeObject.tp_init` also pass arguments this way." +msgstr "" +"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:`API de " +"chamada `." + +#: ../../c-api/call.rst:36 +msgid "The Vectorcall Protocol" +msgstr "O protocolo vectorcall" + +#: ../../c-api/call.rst:40 +msgid "" +"The vectorcall protocol was introduced in :pep:`590` as an additional " +"protocol for making calls more efficient." +msgstr "" +"O protocolo vectorcall foi introduzido pela :pep:`590` como um protocolo " +"adicional para tornar invocações mais eficientes." + +#: ../../c-api/call.rst:43 +msgid "" +"As rule of thumb, CPython will prefer the vectorcall for internal calls if " +"the callable supports it. However, this is not a hard rule. Additionally, " +"some third-party extensions use *tp_call* directly (rather than using :c:" +"func:`PyObject_Call`). Therefore, a class supporting vectorcall must also " +"implement :c:member:`~PyTypeObject.tp_call`. Moreover, the callable must " +"behave the same regardless of which protocol is used. The recommended way to " +"achieve this is by setting :c:member:`~PyTypeObject.tp_call` to :c:func:" +"`PyVectorcall_Call`. This bears repeating:" +msgstr "" +"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:" + +#: ../../c-api/call.rst:57 +msgid "" +"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." + +#: ../../c-api/call.rst:62 +msgid "" +"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " +"when the class's :py:meth:`~object.__call__` method is reassigned. (This " +"internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it " +"behave differently than the vectorcall function.) In earlier Python " +"versions, vectorcall should only be used with :c:macro:`immutable " +"` or static types." +msgstr "" +"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 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 "" +"A class should not implement vectorcall if that would be slower than " +"*tp_call*. For example, if the callee needs to convert the arguments to an " +"args tuple and kwargs dict anyway, then there is no point in implementing " +"vectorcall." +msgstr "" +"Uma classe não deve implementar vectorcall se for mais lento que *tp_call*. " +"Por exemplo, se o chamador precisa converter os argumentos para uma tupla " +"args e um dicionário kwargs de qualquer forma, então não é necessário " +"implementar vectorcall." + +#: ../../c-api/call.rst:74 +msgid "" +"Classes can implement the vectorcall protocol by enabling the :c:macro:" +"`Py_TPFLAGS_HAVE_VECTORCALL` flag and setting :c:member:`~PyTypeObject." +"tp_vectorcall_offset` to the offset inside the object structure where a " +"*vectorcallfunc* appears. This is a pointer to a function with the following " +"signature:" +msgstr "" +"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." +msgstr "*callable* é o objeto sendo chamado." + +#: ../../c-api/call.rst:83 +msgid "" +"*args* is a C array consisting of the positional arguments followed by the" +msgstr "*args* é um array C formado pelos argumentos posicionais seguidos de" + +#: ../../c-api/call.rst:84 +msgid "" +"values of the keyword arguments. This can be *NULL* if there are no " +"arguments." +msgstr "" +"valores dos argumentos nomeados. Este pode ser *NULL* se não existirem " +"argumentos." + +#: ../../c-api/call.rst:86 +msgid "*nargsf* is the number of positional arguments plus possibly the" +msgstr "*nargsf* é o número de argumentos posicionais somado á possível" + +#: ../../c-api/call.rst:87 +msgid "" +":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " +"positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`." +msgstr "" +"Sinalizador :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Para obter o número " +"real de argumentos posicionais de *nargsf*, use :c:func:`PyVectorcall_NARGS`." + +#: ../../c-api/call.rst:90 +msgid "*kwnames* is a tuple containing the names of the keyword arguments;" +msgstr "*kwnames* é uma tupla contendo os nomes dos argumentos nomeados;" + +#: ../../c-api/call.rst:91 +msgid "" +"in other words, the keys of the kwargs dict. These names must be strings " +"(instances of ``str`` or a subclass) and they must be unique. If there are " +"no keyword arguments, then *kwnames* can instead be *NULL*." +msgstr "" +"em outras palavras, as chaves do dicionário kwargs. Estes nomes devem ser " +"strings (instâncias de ``str`` ou uma subclasse) e eles devem ser únicos. Se " +"não existem argumentos nomeados, então *kwnames* deve então ser *NULL*." + +#: ../../c-api/call.rst:98 +msgid "" +"If this flag is set in a vectorcall *nargsf* argument, the callee is allowed " +"to temporarily change ``args[-1]``. In other words, *args* points to " +"argument 1 (not 0) in the allocated vector. The callee must restore the " +"value of ``args[-1]`` before returning." +msgstr "" +"Se esse sinalizador é definido em um argumento *nargsf* do vectorcall, deve " +"ser permitido ao chamado temporariamente mudar ``args[-1]``. Em outras " +"palavras, *args* aponta para o argumento 1 (não 0) no vetor alocado. O " +"chamado deve restaurar o valor de ``args[-1]`` antes de retornar." + +#: ../../c-api/call.rst:103 +msgid "" +"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " +"``args[0]`` may be changed." +msgstr "" +"Para :c:func:`PyObject_VectorcallMethod`, este sinalizador significa que " +"``args[0]`` pode ser alterado." + +#: ../../c-api/call.rst:106 +msgid "" +"Whenever they can do so cheaply (without additional allocation), callers are " +"encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " +"allow callables such as bound methods to make their onward calls (which " +"include a prepended *self* argument) very efficiently." +msgstr "" +"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." + +#: ../../c-api/call.rst:113 +msgid "" +"To call an object that implements vectorcall, use a :ref:`call API ` function as with any other callable. :c:func:`PyObject_Vectorcall` " +"will usually be most efficient." +msgstr "" +"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:119 +msgid "Recursion Control" +msgstr "Controle de recursão" + +#: ../../c-api/call.rst:121 +msgid "" +"When using *tp_call*, callees do not need to worry about :ref:`recursion " +"`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:" +"`Py_LeaveRecursiveCall` for calls made using *tp_call*." +msgstr "" +"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:126 +msgid "" +"For efficiency, this is not the case for calls done using vectorcall: the " +"callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if " +"needed." +msgstr "" +"Por questão de eficiência, este não é o caso de chamadas utilizando o " +"vectorcall: o que chama deve utilizar *Py_EnterRecursiveCall* e " +"*Py_LeaveRecursiveCall* se necessário." + +#: ../../c-api/call.rst:132 +msgid "Vectorcall Support API" +msgstr "API de suporte à chamada de vetores" + +#: ../../c-api/call.rst:136 +msgid "" +"Given a vectorcall *nargsf* argument, return the actual number of arguments. " +"Currently equivalent to::" +msgstr "" +"Dado um argumento de chamada de vetor *nargsf*, retorna o número real de " +"argumentos. Atualmente equivalente a::" + +#: ../../c-api/call.rst:140 +msgid "(Py_ssize_t)(nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET)" +msgstr "(Py_ssize_t)(nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET)" + +#: ../../c-api/call.rst:142 +msgid "" +"However, the function ``PyVectorcall_NARGS`` should be used to allow for " +"future extensions." +msgstr "" +"Entretanto, a função ``PyVectorcall_NARGS`` deve ser usada para permitir " +"para futuras extensões." + +#: ../../c-api/call.rst:149 +msgid "" +"If *op* does not support the vectorcall protocol (either because the type " +"does not or because the specific instance does not), return *NULL*. " +"Otherwise, return the vectorcall function pointer stored in *op*. This " +"function never raises an exception." +msgstr "" +"Se *op* não suporta o protocolo de chamada de vetor (seja porque o tipo ou a " +"instância específica não suportam), retorne *NULL*. Se não, retorne o " +"ponteiro da função chamada de vetor armazenado em *op*. Esta função nunca " +"levanta uma exceção." + +#: ../../c-api/call.rst:154 +msgid "" +"This is mostly useful to check whether or not *op* supports vectorcall, " +"which can be done by checking ``PyVectorcall_Function(op) != NULL``." +msgstr "" +"É mais útil checar se *op* suporta ou não chamada de vetor, o que pode ser " +"feito checando ``PyVectorcall_Function(op) != NULL``." + +#: ../../c-api/call.rst:161 +msgid "" +"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword " +"arguments given in a tuple and dict, respectively." +msgstr "" +"Chama o :c:type:`vectorcallfunc` de *callable* com argumentos posicionais e " +"nomeados dados em uma tupla e dicionário, respectivamente." + +#: ../../c-api/call.rst:164 +msgid "" +"This is a specialized function, intended to be put in the :c:member:" +"`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. " +"It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does " +"not fall back to ``tp_call``." +msgstr "" +"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:175 +msgid "Object Calling API" +msgstr "API de chamada de objetos" + +#: ../../c-api/call.rst:177 +msgid "" +"Various functions are available for calling a Python object. Each converts " +"its arguments to a convention supported by the called object – either " +"*tp_call* or vectorcall. In order to do as little conversion as possible, " +"pick one that best fits the format of data you have available." +msgstr "" +"Várias funções estão disponíveis para chamar um objeto Python. Cada uma " +"converte seus argumentos para uma convenção suportada pelo objeto chamado – " +"seja *tp_call* ou chamada de vetor. Para fazer o mínimo possível de " +"conversões, escolha um que melhor se adapte ao formato de dados que você tem " +"disponível." + +#: ../../c-api/call.rst:183 +msgid "" +"The following table summarizes the available functions; please see " +"individual documentation for details." +msgstr "" +"A tabela a seguir resume as funções disponíveis; por favor, veja a " +"documentação individual para detalhes." + +#: ../../c-api/call.rst:187 +msgid "Function" +msgstr "Função" + +#: ../../c-api/call.rst:187 +msgid "callable" +msgstr "chamável" + +#: ../../c-api/call.rst:187 +msgid "args" +msgstr "args" + +#: ../../c-api/call.rst:187 +msgid "kwargs" +msgstr "kwargs" + +#: ../../c-api/call.rst:189 +msgid ":c:func:`PyObject_Call`" +msgstr ":c:func:`PyObject_Call`" + +#: ../../c-api/call.rst:189 ../../c-api/call.rst:191 ../../c-api/call.rst:193 +#: ../../c-api/call.rst:195 ../../c-api/call.rst:197 ../../c-api/call.rst:201 +#: ../../c-api/call.rst:209 ../../c-api/call.rst:211 +msgid "``PyObject *``" +msgstr "``PyObject *``" + +#: ../../c-api/call.rst:189 +msgid "tuple" +msgstr "tupla" + +#: ../../c-api/call.rst:189 ../../c-api/call.rst:211 +msgid "dict/``NULL``" +msgstr "dict/``NULL``" + +#: ../../c-api/call.rst:191 +msgid ":c:func:`PyObject_CallNoArgs`" +msgstr ":c:func:`PyObject_CallNoArgs`" + +#: ../../c-api/call.rst:191 ../../c-api/call.rst:193 ../../c-api/call.rst:195 +#: ../../c-api/call.rst:197 ../../c-api/call.rst:199 ../../c-api/call.rst:201 +#: ../../c-api/call.rst:203 ../../c-api/call.rst:205 ../../c-api/call.rst:207 +msgid "---" +msgstr "---" + +#: ../../c-api/call.rst:193 +msgid ":c:func:`PyObject_CallOneArg`" +msgstr ":c:func:`PyObject_CallOneArg`" + +#: ../../c-api/call.rst:193 ../../c-api/call.rst:207 +msgid "1 object" +msgstr "1 objeto" + +#: ../../c-api/call.rst:195 +msgid ":c:func:`PyObject_CallObject`" +msgstr ":c:func:`PyObject_CallObject`" + +#: ../../c-api/call.rst:195 +msgid "tuple/``NULL``" +msgstr "tupla/``NULL``" + +#: ../../c-api/call.rst:197 +msgid ":c:func:`PyObject_CallFunction`" +msgstr ":c:func:`PyObject_CallFunction`" + +#: ../../c-api/call.rst:197 ../../c-api/call.rst:199 +msgid "format" +msgstr "format" + +#: ../../c-api/call.rst:199 +msgid ":c:func:`PyObject_CallMethod`" +msgstr ":c:func:`PyObject_CallMethod`" + +#: ../../c-api/call.rst:199 +msgid "obj + ``char*``" +msgstr "obj + ``char*``" + +#: ../../c-api/call.rst:201 +msgid ":c:func:`PyObject_CallFunctionObjArgs`" +msgstr ":c:func:`PyObject_CallFunctionObjArgs`" + +#: ../../c-api/call.rst:201 ../../c-api/call.rst:203 +msgid "variadic" +msgstr "variádica" + +#: ../../c-api/call.rst:203 +msgid ":c:func:`PyObject_CallMethodObjArgs`" +msgstr ":c:func:`PyObject_CallMethodObjArgs`" + +#: ../../c-api/call.rst:203 ../../c-api/call.rst:205 ../../c-api/call.rst:207 +msgid "obj + name" +msgstr "obj + nome" + +#: ../../c-api/call.rst:205 +msgid ":c:func:`PyObject_CallMethodNoArgs`" +msgstr ":c:func:`PyObject_CallMethodNoArgs`" + +#: ../../c-api/call.rst:207 +msgid ":c:func:`PyObject_CallMethodOneArg`" +msgstr ":c:func:`PyObject_CallMethodOneArg`" + +#: ../../c-api/call.rst:209 +msgid ":c:func:`PyObject_Vectorcall`" +msgstr ":c:func:`PyObject_Vectorcall`" + +#: ../../c-api/call.rst:209 ../../c-api/call.rst:211 ../../c-api/call.rst:213 +msgid "vectorcall" +msgstr "vectorcall" + +#: ../../c-api/call.rst:211 +msgid ":c:func:`PyObject_VectorcallDict`" +msgstr ":c:func:`PyObject_VectorcallDict`" + +#: ../../c-api/call.rst:213 +msgid ":c:func:`PyObject_VectorcallMethod`" +msgstr ":c:func:`PyObject_VectorcallMethod`" + +#: ../../c-api/call.rst:213 +msgid "arg + name" +msgstr "arg + nome" + +#: ../../c-api/call.rst:219 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*, and named arguments given by the dictionary *kwargs*." +msgstr "" +"Chama um objeto Python chamável de *callable*, com argumentos dados pela " +"tupla *args*, e argumentos nomeados dados pelo dicionário *kwargs*." + +#: ../../c-api/call.rst:222 +msgid "" +"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If " +"no named arguments are needed, *kwargs* can be *NULL*." +msgstr "" +"*args* não deve ser *NULL*; use uma tupla vazia se não precisar de " +"argumentos. Se nenhum argumento nomeado é necessário, *kwargs* pode ser " +"*NULL*." + +#: ../../c-api/call.rst:225 ../../c-api/call.rst:237 ../../c-api/call.rst:248 +#: ../../c-api/call.rst:259 ../../c-api/call.rst:271 ../../c-api/call.rst:291 +#: ../../c-api/call.rst:310 ../../c-api/call.rst:324 ../../c-api/call.rst:333 +#: ../../c-api/call.rst:345 ../../c-api/call.rst:360 ../../c-api/call.rst:399 +msgid "" +"Return the result of the call on success, or raise an exception and return " +"*NULL* on failure." +msgstr "" +"Retorna o resultado da chamada em sucesso, ou levanta uma exceção e retorna " +"*NULL* em caso de falha." + +#: ../../c-api/call.rst:228 +msgid "" +"This is the equivalent of the Python expression: ``callable(*args, " +"**kwargs)``." +msgstr "" +"Esse é o equivalente da expressão Python: ``callable(*args, **kwargs)``." + +#: ../../c-api/call.rst:234 +msgid "" +"Call a callable Python object *callable* without any arguments. It is the " +"most efficient way to call a callable Python object without any argument." +msgstr "" +"Chama um objeto Python chamável de *callable* sem nenhum argumento. É o " +"jeito mais eficiente de chamar um objeto Python sem nenhum argumento." + +#: ../../c-api/call.rst:245 +msgid "" +"Call a callable Python object *callable* with exactly 1 positional argument " +"*arg* and no keyword arguments." +msgstr "" +"Chama um objeto Python chamável de *callable* com exatamente 1 argumento " +"posicional *arg* e nenhum argumento nomeado." + +#: ../../c-api/call.rst:256 +msgid "" +"Call a callable Python object *callable*, with arguments given by the tuple " +"*args*. If no arguments are needed, then *args* can be *NULL*." +msgstr "" +"Chama um objeto Python chamável de *callable* com argumentos dados pela " +"tupla *args*. Se nenhum argumento é necessário, *args* pode ser *NULL*." + +#: ../../c-api/call.rst:262 ../../c-api/call.rst:274 +msgid "This is the equivalent of the Python expression: ``callable(*args)``." +msgstr "Este é o equivalente da expressão Python: ``callable(*args)``." + +#: ../../c-api/call.rst:267 +msgid "" +"Call a callable Python object *callable*, with a variable number of C " +"arguments. The C arguments are described using a :c:func:`Py_BuildValue` " +"style format string. The format can be *NULL*, indicating that no arguments " +"are provided." +msgstr "" +"Chama um objeto Python chamável de *callable*, com um número variável de " +"argumentos C. Os argumentos C são descritos usando uma string de estilo no " +"formato :c:func:`Py_BuildValue`. O formato pode ser *NULL*, indicando que " +"nenhum argumento foi provido." + +#: ../../c-api/call.rst:276 +msgid "" +"Note that if you only pass :c:expr:`PyObject *` args, :c:func:" +"`PyObject_CallFunctionObjArgs` is a faster alternative." +msgstr "" +"Note que se você apenas passa argumentos :c:expr:`PyObject *`, :c:func:" +"`PyObject_CallFunctionObjArgs` é uma alternativa mais rápida." + +#: ../../c-api/call.rst:279 +msgid "The type of *format* was changed from ``char *``." +msgstr "O tipo de *format* foi mudado de ``char *``." + +#: ../../c-api/call.rst:285 +msgid "" +"Call the method named *name* of object *obj* with a variable number of C " +"arguments. The C arguments are described by a :c:func:`Py_BuildValue` " +"format string that should produce a tuple." +msgstr "" +"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." + +#: ../../c-api/call.rst:289 +msgid "The format can be *NULL*, indicating that no arguments are provided." +msgstr "O formato pode ser *NULL*, indicado que nenhum argumento foi provido." + +#: ../../c-api/call.rst:294 +msgid "" +"This is the equivalent of the Python expression: ``obj.name(arg1, " +"arg2, ...)``." +msgstr "" +"Este é o equivalente da expressão Python: ``obj.name(arg1, arg2, ...)``." + +#: ../../c-api/call.rst:297 +msgid "" +"Note that if you only pass :c:expr:`PyObject *` args, :c:func:" +"`PyObject_CallMethodObjArgs` is a faster alternative." +msgstr "" +"Note que se você apenas passa argumentos :c:expr:`PyObject *`, :c:func:" +"`PyObject_CallMethodObjArgs` é uma alternativa mais rápida." + +#: ../../c-api/call.rst:300 +msgid "The types of *name* and *format* were changed from ``char *``." +msgstr "Os tipos de *name* e *format* foram mudados de ``char *``." + +#: ../../c-api/call.rst:306 +msgid "" +"Call a callable Python object *callable*, with a variable number of :c:expr:" +"`PyObject *` arguments. The arguments are provided as a variable number of " +"parameters followed by *NULL*." +msgstr "" +"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 " +"variável de parâmetros seguidos por um *NULL*." + +#: ../../c-api/call.rst:313 +msgid "" +"This is the equivalent of the Python expression: ``callable(arg1, " +"arg2, ...)``." +msgstr "" +"Este é o equivalente da expressão Python: ``callable(arg1, arg2, ...)``." + +#: ../../c-api/call.rst:319 +msgid "" +"Call a method of the Python object *obj*, where the name of the method is " +"given as a Python string object in *name*. It is called with a variable " +"number of :c:expr:`PyObject *` arguments. The arguments are provided as a " +"variable number of parameters followed by *NULL*." +msgstr "" +"Chama um método do objeto Python *obj*, onde o nome do método é dado como um " +"objeto string Python em *name*. É chamado com um número variável de " +"argumentos :c:expr:`PyObject *`. Os argumentos são providos como um número " +"variável de parâmetros seguidos por um *NULL*." + +#: ../../c-api/call.rst:330 +msgid "" +"Call a method of the Python object *obj* without arguments, where the name " +"of the method is given as a Python string object in *name*." +msgstr "" +"Chama um método do objeto Python *obj* sem argumentos, onde o nome do método " +"é fornecido como um objeto string do Python em *name*." + +#: ../../c-api/call.rst:341 +msgid "" +"Call a method of the Python object *obj* with a single positional argument " +"*arg*, where the name of the method is given as a Python string object in " +"*name*." +msgstr "" +"Chama um método do objeto Python *obj* com um argumento posicional *arg*, " +"onde o nome do método é fornecido como um objeto string do Python em *name*." + +#: ../../c-api/call.rst:355 +msgid "" +"Call a callable Python object *callable*. The arguments are the same as for :" +"c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly " +"calls the vectorcall function stored in *callable*." +msgstr "" +"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:363 +msgid "as ``_PyObject_Vectorcall``" +msgstr "como ``_PyObject_Vectorcall``" + +#: ../../c-api/call.rst:367 +msgid "" +"Renamed to the current name, without the leading underscore. The old " +"provisional name is :term:`soft deprecated`." +msgstr "" +"Renomeado para o nome atual, sem o sublinhado no início. O nome provisório " +"antigo está :term:`suavemente descontinuado`." + +#: ../../c-api/call.rst:372 +msgid "" +"Call *callable* with positional arguments passed exactly as in the " +"vectorcall_ protocol, but with keyword arguments passed as a dictionary " +"*kwdict*. The *args* array contains only the positional arguments." +msgstr "" +"Chama *callable* com argumentos posicionais passados exatamente como no " +"protocolo vectorcall_, mas com argumentos nomeados passados como um " +"dicionário *kwdict*. O array *args* contém apenas os argumentos posicionais." + +#: ../../c-api/call.rst:376 +msgid "" +"Regardless of which protocol is used internally, a conversion of arguments " +"needs to be done. Therefore, this function should only be used if the caller " +"already has a dictionary ready to use for the keyword arguments, but not a " +"tuple for the positional arguments." +msgstr "" +"Independentemente de qual protocolo é usado internamente, uma conversão de " +"argumentos precisa ser feita. Portanto, esta função só deve ser usada se o " +"chamador já tiver um dicionário pronto para usar para os argumentos " +"nomeados, mas não uma tupla para os argumentos posicionais." + +#: ../../c-api/call.rst:386 +msgid "" +"Call a method using the vectorcall calling convention. The name of the " +"method is given as a Python string *name*. The object whose method is called " +"is *args[0]*, and the *args* array starting at *args[1]* represents the " +"arguments of the call. There must be at least one positional argument. " +"*nargsf* is the number of positional arguments including *args[0]*, plus :c:" +"macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may " +"temporarily be changed. Keyword arguments can be passed just like in :c:func:" +"`PyObject_Vectorcall`." +msgstr "" +"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`." + +#: ../../c-api/call.rst:395 +msgid "" +"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " +"will call the unbound method object with the full *args* vector as arguments." +msgstr "" +"Se o objeto tem o recurso :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR`, isso irá " +"chamar o objeto de método não vinculado com o vetor *args* inteiro como " +"argumentos." + +#: ../../c-api/call.rst:406 +msgid "Call Support API" +msgstr "API de suporte a chamadas" + +#: ../../c-api/call.rst:410 +msgid "" +"Determine if the object *o* is callable. Return ``1`` if the object is " +"callable and ``0`` otherwise. This function always succeeds." +msgstr "" +"Determine se o objeto *o* é chamável. Devolva ``1`` se o objeto é chamável e " +"``0`` caso contrário. Esta função sempre tem êxito." diff --git a/c-api/capsule.po b/c-api/capsule.po new file mode 100644 index 000000000..0a39a1dbf --- /dev/null +++ b/c-api/capsule.po @@ -0,0 +1,317 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/capsule.rst:6 +msgid "Capsules" +msgstr "Capsules" + +#: ../../c-api/capsule.rst:10 +msgid "" +"Refer to :ref:`using-capsules` for more information on using these objects." +msgstr "" +"Consulte :ref:`using-capsules` para obter mais informações sobre o uso " +"desses objetos." + +#: ../../c-api/capsule.rst:17 +msgid "" +"This subtype of :c:type:`PyObject` represents an opaque value, useful for C " +"extension modules which need to pass an opaque value (as a :c:expr:`void*` " +"pointer) through Python code to other C code. It is often used to make a C " +"function pointer defined in one module available to other modules, so the " +"regular import mechanism can be used to access C APIs defined in dynamically " +"loaded modules." +msgstr "" +"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 . É " +"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 " +"dinamicamente." + +#: ../../c-api/capsule.rst:27 +msgid "" +"The type object corresponding to capsule objects. This is the same object " +"as :class:`types.CapsuleType` in the Python layer." +msgstr "" +"O objeto de tipo correspondente aos objetos cápsula. Este é o mesmo objeto " +"que :class:`types.CapsuleType` na camada Python." + +#: ../../c-api/capsule.rst:33 +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:35 +msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" +msgstr "typedef void (*PyCapsule_Destructor)(PyObject *);" + +#: ../../c-api/capsule.rst:37 +msgid "" +"See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " +"callbacks." +msgstr "" +"Veja :c:func:`PyCapsule_New` para a semântica dos retornos de chamada " +"PyCapsule_Destructor." + +#: ../../c-api/capsule.rst:43 +msgid "" +"Return true if its argument is a :c:type:`PyCapsule`. This function always " +"succeeds." +msgstr "" +"Retorna true se seu argumento é um :c:type:`PyCapsule`. Esta função sempre " +"tem sucesso." + +#: ../../c-api/capsule.rst:49 +msgid "" +"Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " +"argument may not be ``NULL``." +msgstr "" +"Cria um :c:type:`PyCapsule` que encapsula o *ponteiro*. O argumento " +"*pointer* pode não ser ``NULL``." + +#: ../../c-api/capsule.rst:52 +msgid "On failure, set an exception and return ``NULL``." +msgstr "Em caso de falha, define uma exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:54 +msgid "" +"The *name* string may either be ``NULL`` or a pointer to a valid C string. " +"If non-``NULL``, this string must outlive the capsule. (Though it is " +"permitted to free it inside the *destructor*.)" +msgstr "" +"A string *name* pode ser ``NULL`` ou um ponteiro para uma string C válida. " +"Se não for ``NULL``, essa string deverá sobreviver à cápsula. (Embora seja " +"permitido liberá-lo dentro do *descructor*.)" + +#: ../../c-api/capsule.rst:58 +msgid "" +"If the *destructor* argument is not ``NULL``, it will be called with the " +"capsule as its argument when it is destroyed." +msgstr "" +"Se o argumento *destructor* não for ``NULL``, ele será chamado com a cápsula " +"como argumento quando for destruído." + +#: ../../c-api/capsule.rst:61 +msgid "" +"If this capsule will be stored as an attribute of a module, the *name* " +"should be specified as ``modulename.attributename``. This will enable other " +"modules to import the capsule using :c:func:`PyCapsule_Import`." +msgstr "" +"Se esta cápsula for armazenada como um atributo de um módulo, o *name* deve " +"ser especificado como ``modulename.attributename``. Isso permitirá que " +"outros módulos importem a cápsula usando :c:func:`PyCapsule_Import`." + +#: ../../c-api/capsule.rst:68 +msgid "" +"Retrieve the *pointer* stored in the capsule. On failure, set an exception " +"and return ``NULL``." +msgstr "" +"Recupera o *pointer* armazenado na cápsula. Em caso de falha, define uma " +"exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:71 +msgid "" +"The *name* parameter must compare exactly to the name stored in the capsule. " +"If the name stored in the capsule is ``NULL``, the *name* passed in must " +"also be ``NULL``. Python uses the C function :c:func:`!strcmp` to compare " +"capsule names." +msgstr "" +"O parâmetro *name* deve ser comparado exatamente com o nome armazenado na " +"cápsula. Se o nome armazenado na cápsula for ``NULL``, o *name* passado " +"também deve ser ``NULL``. Python usa a função C :c:func:`!strcmp` para " +"comparar nomes de cápsulas." + +#: ../../c-api/capsule.rst:79 +msgid "" +"Return the current destructor stored in the capsule. On failure, set an " +"exception and return ``NULL``." +msgstr "" +"Retorna o destruidor atual armazenado na cápsula. Em caso de falha, define " +"uma exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:82 +msgid "" +"It is legal for a capsule to have a ``NULL`` destructor. This makes a " +"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :" +"c:func:`PyErr_Occurred` to disambiguate." +msgstr "" +"É 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." + +#: ../../c-api/capsule.rst:89 +msgid "" +"Return the current context stored in the capsule. On failure, set an " +"exception and return ``NULL``." +msgstr "" +"Retorna o contexto atual armazenado na cápsula. Em caso de falha, define uma " +"exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:92 +msgid "" +"It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"`PyErr_Occurred` to disambiguate." +msgstr "" +"É 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." + +#: ../../c-api/capsule.rst:99 +msgid "" +"Return the current name stored in the capsule. On failure, set an exception " +"and return ``NULL``." +msgstr "" +"Retorna o nome atual armazenado na cápsula. Em caso de falha, define uma " +"exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:102 +msgid "" +"It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"`PyErr_Occurred` to disambiguate." +msgstr "" +"É 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." + +#: ../../c-api/capsule.rst:109 +msgid "" +"Import a pointer to a C object from a capsule attribute in a module. The " +"*name* parameter should specify the full name to the attribute, as in " +"``module.attribute``. The *name* stored in the capsule must match this " +"string exactly." +msgstr "" +"Importa um ponteiro para um objeto C de um atributo de cápsula em um módulo. " +"O parâmetro *name* deve especificar o nome completo do atributo, como em " +"``module.attribute``. O *name* armazenado na cápsula deve corresponder " +"exatamente a essa string." + +#: ../../c-api/capsule.rst:114 +msgid "" +"This function splits *name* on the ``.`` character, and imports the first " +"element. It then processes further elements using attribute lookups." +msgstr "" +"Esta função divide *name* no caractere ``.`` e importa o primeiro elemento. " +"Em seguida, processa os elementos seguintes usando pesquisas de atributos." + +#: ../../c-api/capsule.rst:117 +msgid "" +"Return the capsule's internal *pointer* on success. On failure, set an " +"exception and return ``NULL``." +msgstr "" +"Retorna o ponteiro interno *pointer* da cápsula com sucesso. Em caso de " +"falha, define uma exceção e retorna ``NULL``." + +#: ../../c-api/capsule.rst:122 +msgid "" +"If *name* points to an attribute of some submodule or subpackage, this " +"submodule or subpackage must be previously imported using other means (for " +"example, by using :c:func:`PyImport_ImportModule`) for the attribute lookups " +"to succeed." +msgstr "" +"Se *name* apontar para um atributo de algum submódulo ou subpacote, esse " +"submódulo ou subpacote deverá ser importado previamente usando outros meios " +"(por exemplo, usando :c:func:`PyImport_ImportModule`) para que as pesquisas " +"de atributos sejam bem-sucedidas." + +#: ../../c-api/capsule.rst:127 +msgid "*no_block* has no effect anymore." +msgstr "*no_block* não tem mais efeito." + +#: ../../c-api/capsule.rst:133 +msgid "" +"Determines whether or not *capsule* is a valid capsule. A valid capsule is " +"non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " +"pointer stored in it, and its internal name matches the *name* parameter. " +"(See :c:func:`PyCapsule_GetPointer` for information on how capsule names are " +"compared.)" +msgstr "" +"Determina se *capsule* é ou não uma cápsula válida. Uma cápsula válida é " +"diferente de ``NULL``, passa :c:func:`PyCapsule_CheckExact`, possui um " +"ponteiro diferente de ``NULL`` armazenado e seu nome interno corresponde ao " +"parâmetro *name*. (Consulte :c:func:`PyCapsule_GetPointer` para obter " +"informações sobre como os nomes das cápsulas são comparados.)" + +#: ../../c-api/capsule.rst:139 +msgid "" +"In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " +"to any of the accessors (any function starting with ``PyCapsule_Get``) are " +"guaranteed to succeed." +msgstr "" +"Em outras palavras, se :c:func:`PyCapsule_IsValid` retornar um valor " +"verdadeiro, as chamadas para qualquer um dos acessadores (qualquer função " +"que comece com ``PyCapsule_Get``) terão êxito garantido." + +#: ../../c-api/capsule.rst:143 +msgid "" +"Return a nonzero value if the object is valid and matches the name passed " +"in. Return ``0`` otherwise. This function will not fail." +msgstr "" +"Retorna um valor diferente de zero se o objeto for válido e corresponder ao " +"nome passado. Retorna ``0`` caso contrário. Esta função não falhará." + +#: ../../c-api/capsule.rst:149 +msgid "Set the context pointer inside *capsule* to *context*." +msgstr "Define o ponteiro de contexto dentro de *capsule* para *context*." + +#: ../../c-api/capsule.rst:151 ../../c-api/capsule.rst:158 +#: ../../c-api/capsule.rst:167 ../../c-api/capsule.rst:175 +msgid "" +"Return ``0`` on success. Return nonzero and set an exception on failure." +msgstr "" +"Retorna ``0`` em caso de sucesso. Retorna diferente de zero e define uma " +"exceção em caso de falha." + +#: ../../c-api/capsule.rst:156 +msgid "Set the destructor inside *capsule* to *destructor*." +msgstr "Define o destrutor dentro de *capsule* para *destructor*." + +#: ../../c-api/capsule.rst:163 +msgid "" +"Set the name inside *capsule* to *name*. If non-``NULL``, the name must " +"outlive the capsule. If the previous *name* stored in the capsule was not " +"``NULL``, no attempt is made to free it." +msgstr "" +"Define o nome dentro de *capsule* como *name*. Se não for ``NULL``, o nome " +"deve sobreviver à cápsula. Se o *name* anterior armazenado na cápsula não " +"era ``NULL``, nenhuma tentativa será feita para liberá-lo." + +#: ../../c-api/capsule.rst:172 +msgid "" +"Set the void pointer inside *capsule* to *pointer*. The pointer may not be " +"``NULL``." +msgstr "" +"Define o ponteiro nulo dentro de *capsule* para *pointer*. O ponteiro não " +"pode ser ``NULL``." + +#: ../../c-api/capsule.rst:8 +msgid "object" +msgstr "objeto" + +#: ../../c-api/capsule.rst:8 +msgid "Capsule" +msgstr "Cápsula" diff --git a/c-api/cell.po b/c-api/cell.po new file mode 100644 index 000000000..f6b4d38c7 --- /dev/null +++ b/c-api/cell.po @@ -0,0 +1,117 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/cell.rst:6 +msgid "Cell Objects" +msgstr "Objeto célula" + +#: ../../c-api/cell.rst:8 +msgid "" +"\"Cell\" objects are used to implement variables referenced by multiple " +"scopes. For each such variable, a cell object is created to store the value; " +"the local variables of each stack frame that references the value contain a " +"reference to the cells from outer scopes which also use that variable. When " +"the value is accessed, the value contained in the cell is used instead of " +"the cell object itself. This de-referencing of the cell object requires " +"support from the generated byte-code; these are not automatically de-" +"referenced when accessed. Cell objects are not likely to be useful elsewhere." +msgstr "" +"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 " +"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 " +"objeto da célula requer suporte do código de bytes gerado; estes não são " +"automaticamente desprezados quando acessados. Objetos de células " +"provavelmente não serão úteis em outro lugar." + +#: ../../c-api/cell.rst:20 +msgid "The C structure used for cell objects." +msgstr "A estrutura C usada para objetos célula." + +#: ../../c-api/cell.rst:25 +msgid "The type object corresponding to cell objects." +msgstr "O objeto de tipo correspondente aos objetos célula." + +#: ../../c-api/cell.rst:30 +msgid "" +"Return true if *ob* is a cell object; *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"Retorna verdadeiro se *ob* for um objeto célula; *ob* não deve ser ``NULL``. " +"Esta função sempre tem sucesso." + +#: ../../c-api/cell.rst:36 +msgid "" +"Create and return a new cell object containing the value *ob*. The parameter " +"may be ``NULL``." +msgstr "" +"Cria e retorna um novo objeto célula contendo o valor *ob*. O parâmetro pode " +"ser ``NULL``." + +#: ../../c-api/cell.rst:42 +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:48 +msgid "" +"Return the contents of the cell *cell*, but without checking that *cell* is " +"non-``NULL`` and a cell object." +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: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``." +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``." + +#: ../../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: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`` " +"and must be a cell object." +msgstr "" +"Define o valor do objeto da célula *cell* como *value*. Nenhuma contagem de " +"referência é ajustada e nenhuma verificação é feita quanto à segurança; " +"*cell* não pode ser ``NULL`` e deve ser um objeto célula." diff --git a/c-api/code.po b/c-api/code.po new file mode 100644 index 000000000..3f024a43d --- /dev/null +++ b/c-api/code.po @@ -0,0 +1,617 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/code.rst:8 +msgid "Code Objects" +msgstr "Objetos código" + +#: ../../c-api/code.rst:12 +msgid "" +"Code objects are a low-level detail of the CPython implementation. Each one " +"represents a chunk of executable code that hasn't yet been bound into a " +"function." +msgstr "" +"Os objetos código são um detalhe de baixo nível da implementação do CPython. " +"Cada um representa um pedaço de código executável que ainda não foi " +"vinculado a uma função." + +#: ../../c-api/code.rst:18 +msgid "" +"The C structure of the objects used to describe code objects. The fields of " +"this type are subject to change at any time." +msgstr "" +"A estrutura C dos objetos usados para descrever objetos código. Os campos " +"deste tipo estão sujeitos a alterações a qualquer momento." + +#: ../../c-api/code.rst:24 +msgid "" +"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 :term:`free (closure) variables ` in " +"a code object." +msgstr "" +"Retorna o número de :term:`variáveis livres (de clausura) ` em um objeto código." + +#: ../../c-api/code.rst:40 +msgid "" +"Return the position of the first :term:`free (closure) variable ` in a code object." +msgstr "" +"Retorna a posição da primeira :term:`variável livre (de clausura) ` em um objeto código." + +#: ../../c-api/code.rst:45 +msgid "" +"Renamed from ``PyCode_GetFirstFree`` as part of :ref:`unstable-c-api`. The " +"old name is deprecated, but will remain available until the signature " +"changes again." +msgstr "" +"Renomeado de ``PyCode_GetFirstFree`` como parte da :ref:`unstable-c-api`. O " +"nome antigo foi descontinuado, mas continuará disponível até que a " +"assinatura mude novamente." + +#: ../../c-api/code.rst:51 +msgid "" +"Return a new code object. If you need a dummy code object to create a " +"frame, use :c:func:`PyCode_NewEmpty` instead." +msgstr "" +"Devolve um novo objeto código. Se precisar de um objeto código vazio para " +"criar um quadro, use :c:func:`PyCode_NewEmpty`" + +#: ../../c-api/code.rst:54 +msgid "" +"Since the definition of the bytecode changes often, calling :c:func:" +"`PyUnstable_Code_New` directly can bind you to a precise Python version." +msgstr "" +"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:57 +msgid "" +"The many arguments of this function are inter-dependent in complex ways, " +"meaning that subtle changes to values are likely to result in incorrect " +"execution or VM crashes. Use this function only with extreme care." +msgstr "" +"Os vários argumentos desta função são inter-dependentes de maneiras " +"complexas, significando que mesmo alterações discretas de valor tem chances " +"de resultar em execução incorreta ou erros fatais de VM. Tenha extremo " +"cuidado ao usar esta função." + +#: ../../c-api/code.rst:61 +msgid "Added ``qualname`` and ``exceptiontable`` parameters." +msgstr "Adicionou os parâmetros ``qualname`` e ``exceptiontable``" + +#: ../../c-api/code.rst:68 +msgid "" +"Renamed from ``PyCode_New`` as part of :ref:`unstable-c-api`. The old name " +"is deprecated, but will remain available until the signature changes again." +msgstr "" +"Renomeado de ``PyCode_New`` como parte da :ref:`unstable-c-api`. O nome " +"antigo foi descontinuado, mas continuará disponível até que a assinatura " +"mude novamente." + +#: ../../c-api/code.rst:77 +msgid "" +"Similar to :c:func:`PyUnstable_Code_New`, but with an extra " +"\"posonlyargcount\" for positional-only arguments. The same caveats that " +"apply to ``PyUnstable_Code_New`` also apply to this function." +msgstr "" +"Similar a :c:func:`PyUnstable_Code_New`, mas com um \"posonlyargcount\" " +"extra para argumentos somente-posicionais. As mesmas ressalvas que se " +"aplicam a ``PyUnstable_Code_New`` também se aplicam a essa função." + +#: ../../c-api/code.rst:80 +msgid "as ``PyCode_NewWithPosOnlyArgs``" +msgstr "Como ``PyCode_NewWithPosOnlyArgs``" + +#: ../../c-api/code.rst:82 +msgid "Added ``qualname`` and ``exceptiontable`` parameters." +msgstr "Adicionados os parâmetros ``qualname`` e ``exceptiontable``" + +#: ../../c-api/code.rst:87 +msgid "" +"Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is " +"deprecated, but will remain available until the signature changes again." +msgstr "" +"Renomeado para ``PyUnstable_Code_NewWithPosOnlyArgs``. O nome antigo foi " +"descontinuado, mas continuará disponível até que a assinatura mude novamente." + +#: ../../c-api/code.rst:93 +msgid "" +"Return a new empty code object with the specified filename, function name, " +"and first line number. The resulting code object will raise an ``Exception`` " +"if executed." +msgstr "" +"Retorna um novo objeto código vazio com o nome de arquivo, nome da função e " +"número da primeira linha especificados. O objeto código resultante irá " +"levantar uma ``Exception`` se executado." + +#: ../../c-api/code.rst:99 +msgid "" +"Return the line number of the instruction that occurs on or before " +"``byte_offset`` and ends after it. If you just need the line number of a " +"frame, use :c:func:`PyFrame_GetLineNumber` instead." +msgstr "" +"Retorna o número da linha da instrução que ocorre em ou antes de " +"``byte_offset`` e termina depois disso. Se você só precisa do número da " +"linha de um quadro, use :c:func:`PyFrame_GetLineNumber`." + +#: ../../c-api/code.rst:102 +msgid "" +"For efficiently iterating over the line numbers in a code object, use :pep:" +"`the API described in PEP 626 <0626#out-of-process-debuggers-and-profilers>`." +msgstr "" +"Para iterar eficientemente sobre os números de linha em um objeto código, " +"use :pep:`a API descrita na PEP 626 <0626#out-of-process-debuggers-and-" +"profilers>` ." + +#: ../../c-api/code.rst:107 +msgid "" +"Sets the passed ``int`` pointers to the source code line and column numbers " +"for the instruction at ``byte_offset``. Sets the value to ``0`` when " +"information is not available for any particular element." +msgstr "" +"Define os ponteiros ``int`` passados para a linha do código-fonte e os " +"números da coluna para a instrução em ``byte_offset``. Define o valor como " +"``0`` quando as informações não estão disponíveis para nenhum elemento em " +"particular." + +#: ../../c-api/code.rst:111 +msgid "Returns ``1`` if the function succeeds and 0 otherwise." +msgstr "Retorna ``1`` se a função for bem-sucedida e 0 caso contrário." + +#: ../../c-api/code.rst:117 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong " +"reference to a :c:type:`PyBytesObject` representing the bytecode in a code " +"object. On error, ``NULL`` is returned and an exception is raised." +msgstr "" +"Equivalente ao código Python ``getattr(co, 'co_code')``. Retorna uma " +"referência forte a um :c:type:`PyBytesObject` representando o bytecode em um " +"objeto código. Em caso de erro, ``NULL`` é retornado e uma exceção é " +"levantada." + +#: ../../c-api/code.rst:122 +msgid "" +"This ``PyBytesObject`` may be created on-demand by the interpreter and does " +"not necessarily represent the bytecode actually executed by CPython. The " +"primary use case for this function is debuggers and profilers." +msgstr "" +"Este ``PyBytesObject`` pode ser criado sob demanda pelo interpretador e não " +"representa necessariamente o bytecode realmente executado pelo CPython. O " +"caso de uso primário para esta função são depuradores e criadores de perfil." + +#: ../../c-api/code.rst:130 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of the local " +"variables. On error, ``NULL`` is returned and an exception is raised." +msgstr "" +"Equivalente ao código Python ``getattr(co, 'co_varnames')``. Retorna uma " +"nova referência a um :c:type:`PyTupleObject` contendo os nomes das variáveis " +"locais. Em caso de erro, ``NULL`` é retornado e uma exceção é levantada." + +#: ../../c-api/code.rst:139 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of the local " +"variables that are referenced by nested functions. On error, ``NULL`` is " +"returned and an exception is raised." +msgstr "" +"Equivalente ao código Python ``getattr(co, 'co_cellvars')``. Retorna uma " +"nova referência a um :c:type:`PyTupleObject` contendo os nomes das variáveis " +"locais referenciadas por funções aninhadas. Em caso de erro, ``NULL`` é " +"retornado e uma exceção é levantada." + +#: ../../c-api/code.rst:148 +msgid "" +"Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new " +"reference to a :c:type:`PyTupleObject` containing the names of the :term:" +"`free (closure) variables `. On error, ``NULL`` is " +"returned and an exception is raised." +msgstr "" +"Equivalente ao código Python ``getattr(co, 'co_freevars')``. Retorna uma " +"nova referência a um :c:type:`PyTupleObject` contendo os nomes das :term:" +"`variáveis livres (de clausura) `. Em caso de erro, " +"``NULL`` é retornado e uma exceção é levantada." + +#: ../../c-api/code.rst:157 +msgid "" +"Register *callback* as a code object watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" +"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." + +#: ../../c-api/code.rst:166 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyCode_AddWatcher` for the current interpreter. Return ``0`` on success, or " +"``-1`` and set an exception on error (e.g. if the given *watcher_id* was " +"never registered.)" +msgstr "" +"Libera o observador identificado por *watcher_id* anteriormente retornado " +"por :c:func:`PyCode_AddWatcher` para o interpretador atual. Retorna ``0`` em " +"caso de sucesso ou ``-1`` em caso de erro e levanta uma exceção (ex., se o " +"*watcher_id* dado não foi registrado.)" + +#: ../../c-api/code.rst:175 +msgid "" +"Enumeration of possible code object watcher events: - " +"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" +msgstr "" +"Enumeração dos possíveis eventos de observador do objeto código: " +"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" + +#: ../../c-api/code.rst:183 +msgid "Type of a code object watcher callback function." +msgstr "Tipo de uma função de callback de observador de objeto código." + +#: ../../c-api/code.rst:185 +msgid "" +"If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " +"*co* has been fully initialized. Otherwise, the callback is invoked before " +"the destruction of *co* takes place, so the prior state of *co* can be " +"inspected." +msgstr "" +"Se *evento* é ``PY_CODE_EVENT_CREATE``, então a função de retorno é invocada " +"após *co* ter sido completamente inicializado. Senão, a função de retorno é " +"invocada antes que a destruição de *co* ocorra, para que o estado anterior " +"de *co* possa ser inspecionado." + +#: ../../c-api/code.rst:190 +msgid "" +"If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback " +"to the about-to-be-destroyed code object will resurrect it and prevent it " +"from being freed at this time. When the resurrected object is destroyed " +"later, any watcher callbacks active at that time will be called again." +msgstr "" +"Se *evento* for ``PY_CODE_EVENT_DESTROY``, obter uma referência para a " +"função de retorno do objeto-a-ser-destruído irá reativá-lo e impedirá que o " +"objeto seja liberado. Quando o objeto reativado é posteriormente destruído, " +"qualquer observador de funções de retorno ativos naquele momento serão " +"chamados novamente." + +#: ../../c-api/code.rst:195 +msgid "" +"Users of this API should not rely on internal runtime implementation " +"details. Such details may include, but are not limited to, the exact order " +"and timing of creation and destruction of code objects. While changes in " +"these details may result in differences observable by watchers (including " +"whether a callback is invoked or not), it does not change the semantics of " +"the Python code being executed." +msgstr "" +"Usuários desta API não devem depender de detalhes internos de implementação " +"em tempo de execução. Tais detalhes podem incluir, mas não estão limitados " +"a: o ordem e o momento exatos da criação e destruição de objetos código. " +"Enquanto alterações nestes detalhes podem resultar em diferenças que são " +"visíveis para os observadores (incluindo se uma função de retorno é chamada " +"ou não), isso não muda a semântica do código Python executado." + +#: ../../c-api/code.rst:202 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" +"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:206 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" +"É 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 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:217 +msgid "This is a :term:`soft deprecated` function that does nothing." +msgstr "" +"Esta é uma função :term:`suavemente descontinuada ` que faz nada." + +#: ../../c-api/code.rst:219 +msgid "" +"Prior to Python 3.10, this function would perform basic optimizations to a " +"code object." +msgstr "" +"Antes do Python 3.10, essa função realizava otimizações básicas em um objeto " +"código." + +#: ../../c-api/code.rst:222 +msgid "This function now does nothing." +msgstr "Esta função agora não faz nada." + +#: ../../c-api/code.rst:229 +msgid "Code Object Flags" +msgstr "Sinalizadores de objetos código" + +#: ../../c-api/code.rst:231 +msgid "" +"Code objects contain a bit-field of flags, which can be retrieved as the :" +"attr:`~codeobject.co_flags` Python attribute (for example using :c:func:" +"`PyObject_GetAttrString`), and set using a *flags* argument to :c:func:" +"`PyUnstable_Code_New` and similar functions." +msgstr "" +"Objetos código contêm um campo de bits de sinalizadores, que podem ser " +"recuperados como o atributo Python :attr:`~codeobject.co_flags` (por " +"exemplo, usando :c:func:`PyObject_GetAttrString`) e definidos usando um " +"argumento *flags* para :c:func:`PyUnstable_Code_New` e funções semelhantes." + +#: ../../c-api/code.rst:236 +msgid "" +"Flags whose names start with ``CO_FUTURE_`` correspond to features normally " +"selectable by :ref:`future statements `. These flags can be used in :" +"c:member:`PyCompilerFlags.cf_flags`. Note that many ``CO_FUTURE_`` flags are " +"mandatory in current versions of Python, and setting them has no effect." +msgstr "" +"Os sinalizadores cujos nomes começam com ``CO_FUTURE_`` correspondem a " +"recursos normalmente selecionáveis por :ref:`instruções future `. " +"Esses sinalizadores podem ser usados em :c:member:`PyCompilerFlags." +"cf_flags`. Observe que muitos sinalizadores ``CO_FUTURE_`` são obrigatórios " +"nas versões atuais do Python, e defini-los não tem efeito." + +#: ../../c-api/code.rst:242 +msgid "" +"The following flags are available. For their meaning, see the linked " +"documentation of their Python equivalents." +msgstr "" +"Os seguintes sinalizador estão disponíveis. Para saber o significado delas, " +"consulte a documentação vinculada de seus equivalentes em Python." + +#: ../../c-api/code.rst:250 +msgid "Flag" +msgstr "Sinalizador" + +#: ../../c-api/code.rst:251 +msgid "Meaning" +msgstr "Significado" + +#: ../../c-api/code.rst:253 +msgid ":py:data:`inspect.CO_OPTIMIZED`" +msgstr ":py:data:`inspect.CO_OPTIMIZED`" + +#: ../../c-api/code.rst:255 +msgid ":py:data:`inspect.CO_NEWLOCALS`" +msgstr ":py:data:`inspect.CO_NEWLOCALS`" + +#: ../../c-api/code.rst:257 +msgid ":py:data:`inspect.CO_VARARGS`" +msgstr ":py:data:`inspect.CO_VARARGS`" + +#: ../../c-api/code.rst:259 +msgid ":py:data:`inspect.CO_VARKEYWORDS`" +msgstr ":py:data:`inspect.CO_VARKEYWORDS`" + +#: ../../c-api/code.rst:261 +msgid ":py:data:`inspect.CO_NESTED`" +msgstr ":py:data:`inspect.CO_NESTED`" + +#: ../../c-api/code.rst:263 +msgid ":py:data:`inspect.CO_GENERATOR`" +msgstr ":py:data:`inspect.CO_GENERATOR`" + +#: ../../c-api/code.rst:265 +msgid ":py:data:`inspect.CO_COROUTINE`" +msgstr ":py:data:`inspect.CO_COROUTINE`" + +#: ../../c-api/code.rst:267 +msgid ":py:data:`inspect.CO_ITERABLE_COROUTINE`" +msgstr ":py:data:`inspect.CO_ITERABLE_COROUTINE`" + +#: ../../c-api/code.rst:269 +msgid ":py:data:`inspect.CO_ASYNC_GENERATOR`" +msgstr ":py:data:`inspect.CO_ASYNC_GENERATOR`" + +#: ../../c-api/code.rst:271 +msgid ":py:data:`inspect.CO_HAS_DOCSTRING`" +msgstr ":py:data:`inspect.CO_HAS_DOCSTRING`" + +#: ../../c-api/code.rst:273 +msgid ":py:data:`inspect.CO_METHOD`" +msgstr ":py:data:`inspect.CO_METHOD`" + +#: ../../c-api/code.rst:276 +msgid "no effect (:py:data:`__future__.division`)" +msgstr "sem efeito (:py:data:`__future__.division`)" + +#: ../../c-api/code.rst:278 +msgid "no effect (:py:data:`__future__.absolute_import`)" +msgstr "sem efeito (:py:data:`__future__.absolute_import`)" + +#: ../../c-api/code.rst:280 +msgid "no effect (:py:data:`__future__.with_statement`)" +msgstr "sem efeito (:py:data:`__future__.with_statement`)" + +#: ../../c-api/code.rst:282 +msgid "no effect (:py:data:`__future__.print_function`)" +msgstr "sem efeito (:py:data:`__future__.print_function`)" + +#: ../../c-api/code.rst:284 +msgid "no effect (:py:data:`__future__.unicode_literals`)" +msgstr "sem efeito (:py:data:`__future__.unicode_literals`)" + +#: ../../c-api/code.rst:286 +msgid "no effect (:py:data:`__future__.generator_stop`)" +msgstr "sem efeito (:py:data:`__future__.generator_stop`)" + +#: ../../c-api/code.rst:288 +msgid ":py:data:`__future__.annotations`" +msgstr ":py:data:`__future__.annotations`" + +#: ../../c-api/code.rst:292 +msgid "Extra information" +msgstr "Informação adicional" + +#: ../../c-api/code.rst:294 +msgid "" +"To support low-level extensions to frame evaluation, such as external just-" +"in-time compilers, it is possible to attach arbitrary extra data to code " +"objects." +msgstr "" +"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:298 +msgid "" +"These functions are part of the unstable C API tier: this functionality is a " +"CPython implementation detail, and the API may change without deprecation " +"warnings." +msgstr "" +"Estas funções são parte da camada instável da API C: Essa funcionalidade é " +"um detalhe de implementação do CPython, e a API pode mudar sem avisos de " +"descontinuidade." + +#: ../../c-api/code.rst:307 +msgid "Return a new opaque index value used to adding data to code objects." +msgstr "" +"Retorna um novo e opaco valor de índice usado para adicionar dados a objetos " +"código." + +#: ../../c-api/code.rst:309 +msgid "" +"You generally call this function once (per interpreter) and use the result " +"with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on " +"individual code objects." +msgstr "" +"Geralmente, você chama esta função apenas uma vez (por interpretador) e usa " +"o resultado com ``PyCode_GetExtra`` e ``PyCode_SetExtra`` para manipular " +"dados em objetos código individuais." + +#: ../../c-api/code.rst:313 +msgid "" +"If *free* is not ``NULL``: when a code object is deallocated, *free* will be " +"called on non-``NULL`` data stored under the new index. Use :c:func:" +"`Py_DecRef` when storing :c:type:`PyObject`." +msgstr "" +"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`." + +#: ../../c-api/code.rst:317 +msgid "as ``_PyEval_RequestCodeExtraIndex``" +msgstr "como ``_PyEval_RequestCodeExtraIndex``" + +#: ../../c-api/code.rst:321 +msgid "" +"Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name " +"is deprecated, but will be available until the API changes." +msgstr "" +"Renomeado para ``PyUnstable_Eval_RequestCodeExtraIndex``. O nome antigo nome " +"privado foi descontinuado, mas continuará disponível até a mudança da API." + +#: ../../c-api/code.rst:330 +msgid "" +"Set *extra* to the extra data stored under the given index. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" +"Define *extra* para os dados adicionais armazenados sob o novo índice dado. " +"Retorna 0 em caso de sucesso. Define uma exceção e retorna -1 em caso de " +"erro." + +#: ../../c-api/code.rst:333 +msgid "" +"If no data was set under the index, set *extra* to ``NULL`` and return 0 " +"without setting an exception." +msgstr "" +"Se nenhum dado foi determinado sob o índice, define *extra* como ``NULL`` e " +"retorna 0 sem definir nenhuma exceção." + +#: ../../c-api/code.rst:336 +msgid "as ``_PyCode_GetExtra``" +msgstr "como ``_PyCode_GetExtra``" + +#: ../../c-api/code.rst:340 +msgid "" +"Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" +"Renomeado para ``PyUnstable_Code_GetExtra``. O nome antigo privado foi " +"descontinuado, mas continuará disponível até a mudança da API." + +#: ../../c-api/code.rst:349 +msgid "" +"Set the extra data stored under the given index to *extra*. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" +"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:352 +msgid "as ``_PyCode_SetExtra``" +msgstr "como ``_PyCode_SetExtra``" + +#: ../../c-api/code.rst:356 +msgid "" +"Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" +"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" +msgstr "objeto" + +#: ../../c-api/code.rst:3 +msgid "code" +msgstr "código" + +#: ../../c-api/code.rst:3 +msgid "code object" +msgstr "objeto código" + +#: ../../c-api/code.rst:64 +msgid "PyCode_New (C function)" +msgstr "PyCode_New (função C)" diff --git a/c-api/codec.po b/c-api/codec.po new file mode 100644 index 000000000..2c523acee --- /dev/null +++ b/c-api/codec.po @@ -0,0 +1,239 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/codec.rst:4 +msgid "Codec registry and support functions" +msgstr "Registro de codec e funções de suporte" + +#: ../../c-api/codec.rst:8 +msgid "Register a new codec search function." +msgstr "Registra uma nova função de busca de codec." + +#: ../../c-api/codec.rst:10 +msgid "" +"As a side effect, this tries to load the :mod:`!encodings` package, if not " +"yet done, to make sure that it is always first in the list of search " +"functions." +msgstr "" +"Como efeito colateral, tenta carregar o pacote :mod:`!encodings`, se isso " +"ainda não tiver sido feito, com o propósito de garantir que ele sempre seja " +"o primeiro na lista de funções de busca." + +#: ../../c-api/codec.rst:15 +msgid "" +"Unregister a codec search function and clear the registry's cache. If the " +"search function is not registered, do nothing. Return 0 on success. Raise an " +"exception and return -1 on error." +msgstr "" +"Cancela o registro de uma função de busca de codec e limpa o cache de " +"registro. Se a função de busca não está registrada, não faz nada. Retorna 0 " +"no sucesso. Levanta uma exceção e retorna -1 em caso de erro." + +#: ../../c-api/codec.rst:23 +msgid "" +"Return ``1`` or ``0`` depending on whether there is a registered codec for " +"the given *encoding*. This function always succeeds." +msgstr "" +"Retorna ``1`` ou ``0`` dependendo se há um codec registrado para a dada " +"codificação *encoding*. Essa função sempre é bem-sucedida." + +#: ../../c-api/codec.rst:28 +msgid "Generic codec based encoding API." +msgstr "API de codificação baseada em codec genérico." + +#: ../../c-api/codec.rst:30 +msgid "" +"*object* is passed through the encoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be ``NULL`` to use the default method defined for the codec. Raises a :" +"exc:`LookupError` if no encoder can be found." +msgstr "" +"*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 " +"de erros definido por *errors*. *errors* pode ser ``NULL`` para usar o " +"método padrão definido para o codec. Levanta um :exc:`LookupError` se nenhum " +"codificador puder ser encontrado." + +#: ../../c-api/codec.rst:37 +msgid "Generic codec based decoding API." +msgstr "API de decodificação baseada em decodificador genérico." + +#: ../../c-api/codec.rst:39 +msgid "" +"*object* is passed through the decoder function found for the given " +"*encoding* using the error handling method defined by *errors*. *errors* " +"may be ``NULL`` to use the default method defined for the codec. Raises a :" +"exc:`LookupError` if no decoder can be found." +msgstr "" +"*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 " +"de erros definido por *errors*. *errors* pode ser ``NULL`` para usar o " +"método padrão definido para o codec. Levanta um :exc:`LookupError` se nenhum " +"decodificador puder ser encontrado." + +#: ../../c-api/codec.rst:46 +msgid "Codec lookup API" +msgstr "API de pesquisa de codec" + +#: ../../c-api/codec.rst:48 +msgid "" +"In the following functions, the *encoding* string is looked up converted to " +"all lower-case characters, which makes encodings looked up through this " +"mechanism effectively case-insensitive. If no codec is found, a :exc:" +"`KeyError` is set and ``NULL`` returned." +msgstr "" +"Nas funções a seguir, a string *encoding* é pesquisada com todos os " +"caracteres sendo convertidos para minúsculo, o que faz com que as " +"codificações pesquisadas por esse mecanismo não façam distinção entre " +"maiúsculas e minúsculas. Se nenhum codec for encontrado, um :exc:`KeyError` " +"é definido e ``NULL`` é retornado." + +#: ../../c-api/codec.rst:55 +msgid "Get an encoder function for the given *encoding*." +msgstr "Obtém uma função de codificação para o *encoding* dado." + +#: ../../c-api/codec.rst:59 +msgid "Get a decoder function for the given *encoding*." +msgstr "Obtém uma função de decodificação para o *encoding* dado." + +#: ../../c-api/codec.rst:63 +msgid "" +"Get an :class:`~codecs.IncrementalEncoder` object for the given *encoding*." +msgstr "" +"Obtém um objeto :class:`~codecs.IncrementalEncoder` para o *encoding* dado." + +#: ../../c-api/codec.rst:67 +msgid "" +"Get an :class:`~codecs.IncrementalDecoder` object for the given *encoding*." +msgstr "" +"Obtém um objeto :class:`~codecs.IncrementalDecoder` para o *encoding* dado." + +#: ../../c-api/codec.rst:71 +msgid "" +"Get a :class:`~codecs.StreamReader` factory function for the given " +"*encoding*." +msgstr "" +"Obtém uma função de fábrica :class:`~codecs.StreamReader` para o *encoding* " +"dado." + +#: ../../c-api/codec.rst:75 +msgid "" +"Get a :class:`~codecs.StreamWriter` factory function for the given " +"*encoding*." +msgstr "" +"Obtém uma função de fábrica :class:`~codecs.StreamWriter` para o *encoding* " +"dado." + +#: ../../c-api/codec.rst:79 +msgid "Registry API for Unicode encoding error handlers" +msgstr "API de registro de tratamentos de erros de decodificação Unicode" + +#: ../../c-api/codec.rst:83 +msgid "" +"Register the error handling callback function *error* under the given " +"*name*. This callback function will be called by a codec when it encounters " +"unencodable characters/undecodable bytes and *name* is specified as the " +"error parameter in the call to the encode/decode function." +msgstr "" +"Registra a função de retorno de chamada de tratamento de *erro* para o " +"*nome* fornecido. Esta chamada de função é invocada por um codificador " +"quando encontra caracteres/bytes indecodificáveis e *nome* é especificado " +"como o parâmetro de erro na chamada da função de codificação/decodificação." + +#: ../../c-api/codec.rst:88 +msgid "" +"The callback gets a single argument, an instance of :exc:" +"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` or :exc:" +"`UnicodeTranslateError` that holds information about the problematic " +"sequence of characters or bytes and their offset in the original string " +"(see :ref:`unicodeexceptions` for functions to extract this information). " +"The callback must either raise the given exception, or return a two-item " +"tuple containing the replacement for the problematic sequence, and an " +"integer giving the offset in the original string at which encoding/decoding " +"should be resumed." +msgstr "" +"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 " +"retornar uma tupla de dois itens contendo a substituição para a sequência " +"problemática, e um inteiro fornecendo o deslocamento na string original na " +"qual a codificação/decodificação deve ser retomada." + +#: ../../c-api/codec.rst:98 +msgid "Return ``0`` on success, ``-1`` on error." +msgstr "Retorna ``0`` em caso de sucesso, ``-1`` em caso de erro." + +#: ../../c-api/codec.rst:102 +msgid "" +"Lookup the error handling callback function registered under *name*. As a " +"special case ``NULL`` can be passed, in which case the error handling " +"callback for \"strict\" will be returned." +msgstr "" +"Pesquisa a função de retorno de chamada de tratamento de erros registrada em " +"*name*. Como um caso especial, ``NULL`` pode ser passado; nesse caso, o erro " +"no tratamento de retorno de chamada para \"strict\" será retornado." + +#: ../../c-api/codec.rst:108 +msgid "Raise *exc* as an exception." +msgstr "Levanta *exc* como uma exceção." + +#: ../../c-api/codec.rst:112 +msgid "Ignore the unicode error, skipping the faulty input." +msgstr "Ignora o erro de unicode, ignorando a entrada que causou o erro." + +#: ../../c-api/codec.rst:116 +msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``." +msgstr "Substitui o erro de unicode por ``?`` ou ``U+FFFD``." + +#: ../../c-api/codec.rst:120 +msgid "Replace the unicode encode error with XML character references." +msgstr "Substitui o erro de unicode por caracteres da referência XML." + +#: ../../c-api/codec.rst:124 +msgid "" +"Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` " +"and ``\\U``)." +msgstr "" +"Substitui o erro de unicode com escapes de barra invertida (``\\x``, ``\\u`` " +"e ``\\U``)." + +#: ../../c-api/codec.rst:129 +msgid "Replace the unicode encode error with ``\\N{...}`` escapes." +msgstr "Substitui os erros de codificação unicode com escapes ``\\N{...}``." + +#: ../../c-api/codec.rst:135 +msgid "Codec utility variables" +msgstr "Variáveis utilitárias de codec" + +#: ../../c-api/codec.rst:139 +msgid "" +"A string constant containing the lowercase hexadecimal digits: " +"``\"0123456789abcdef\"``." +msgstr "" +"Uma constante string contendo os dígitos hexadecimais minúsculos: " +"``\"0123456789abcdef\"``." diff --git a/c-api/complex.po b/c-api/complex.po new file mode 100644 index 000000000..9c198ea2b --- /dev/null +++ b/c-api/complex.po @@ -0,0 +1,289 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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 números complexos" + +#: ../../c-api/complex.rst:10 +msgid "" +"Python's complex number objects are implemented as two distinct types when " +"viewed from the C API: one is the Python object exposed to Python programs, " +"and the other is a C structure which represents the actual complex number " +"value. The API provides functions for working with both." +msgstr "" +"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." + +#: ../../c-api/complex.rst:17 +msgid "Complex Numbers as C Structures" +msgstr "Números complexos como estruturas C." + +#: ../../c-api/complex.rst:19 +msgid "" +"Note that the functions which accept these structures as parameters and " +"return them as results do so *by value* rather than dereferencing them " +"through pointers. This is consistent throughout the API." +msgstr "" +"Observe que as funções que aceitam essas estruturas como parâmetros e as " +"retornam como resultados o fazem *por valor* em vez de desreferenciá-las por " +"meio de ponteiros. Isso é consistente em toda a API." + +#: ../../c-api/complex.rst:26 +msgid "" +"The C structure which corresponds to the value portion of a Python complex " +"number object. Most of the functions for dealing with complex number " +"objects use structures of this type as input or output values, as " +"appropriate." +msgstr "" +"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." + +#: ../../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: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`." + +#: ../../c-api/complex.rst:49 +msgid "" +"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:55 +msgid "" +"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`." + +#: ../../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`." + +#: ../../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`." + +#: ../../c-api/complex.rst:70 +msgid "" +"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`." + +#: ../../c-api/complex.rst:76 +msgid "" +"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`" + +#: ../../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`." +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:82 +msgid "Set :c:data:`errno` to :c:macro:`!ERANGE` on overflows." +msgstr "Define :c:data:`errno` para :c:macro:`!ERANGE` em caso de estouros." + +#: ../../c-api/complex.rst:86 +msgid "Complex Numbers as Python Objects" +msgstr "Números complexos como objetos Python" + +#: ../../c-api/complex.rst:91 +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:96 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python complex number " +"type. It is the same object as :class:`complex` in the Python layer." +msgstr "" +"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:102 +msgid "" +"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:108 +msgid "" +"Return true if its argument is a :c:type:`PyComplexObject`, but not a " +"subtype of :c:type:`PyComplexObject`. This function always succeeds." +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:114 +msgid "" +"Create a new Python complex number object from a C :c:type:`Py_complex` " +"value. Return ``NULL`` with an exception set on error." +msgstr "" +"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:120 +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:126 +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:128 +msgid "" +"If *op* is not a Python complex number object but has a :meth:`~object." +"__complex__` method, this method will first be called to convert *op* to a " +"Python complex number object. If :meth:`!__complex__` is not defined then " +"it falls back to call :c:func:`PyFloat_AsDouble` and returns its result." +msgstr "" +"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 estiver " +"definido, ele volta a chamar :c:func:`PyFloat_AsDouble` e retorna seu " +"resultado." + +#: ../../c-api/complex.rst:134 ../../c-api/complex.rst:150 +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:137 ../../c-api/complex.rst:153 +msgid "Use :meth:`~object.__complex__` if available." +msgstr "Usa :meth:`~object.__complex__`, se disponível." + +#: ../../c-api/complex.rst:142 +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:144 +msgid "" +"If *op* is not a Python complex number object but has a :meth:`~object." +"__complex__` method, this method will first be called to convert *op* to a " +"Python complex number object. If :meth:`!__complex__` is not defined then " +"it falls back to call :c:func:`PyFloat_AsDouble` and returns ``0.0`` on " +"success." +msgstr "" +"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 estiver " +"definido, ele volta a chamar :c:func:`PyFloat_AsDouble` e retorna ``0.0`` em " +"caso de sucesso." + +#: ../../c-api/complex.rst:158 +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:160 +msgid "" +"If *op* is not a Python complex number object but has a :meth:`~object." +"__complex__` method, this method will first be called to convert *op* to a " +"Python complex number object. If :meth:`!__complex__` is not defined then " +"it falls back to :meth:`~object.__float__`. If :meth:`!__float__` is not " +"defined then it falls back to :meth:`~object.__index__`." +msgstr "" +"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:166 +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:170 +msgid "Use :meth:`~object.__index__` if available." +msgstr "Usa :meth:`~object.__index__`, se disponível." + +#: ../../c-api/complex.rst:8 +msgid "object" +msgstr "objeto" + +#: ../../c-api/complex.rst:8 +msgid "complex number" +msgstr "número complexo" diff --git a/c-api/concrete.po b/c-api/concrete.po new file mode 100644 index 000000000..02f878688 --- /dev/null +++ b/c-api/concrete.po @@ -0,0 +1,119 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/concrete.rst:8 +msgid "Concrete Objects Layer" +msgstr "Camada de Objetos Concretos" + +#: ../../c-api/concrete.rst:10 +msgid "" +"The functions in this chapter are specific to certain Python object types. " +"Passing them an object of the wrong type is not a good idea; if you receive " +"an object from a Python program and you are not sure that it has the right " +"type, you must perform a type check first; for example, to check that an " +"object is a dictionary, use :c:func:`PyDict_Check`. The chapter is " +"structured like the \"family tree\" of Python object types." +msgstr "" +"As funções neste capítulo são específicas para certos tipos de objetos " +"Python. Passar para eles um objeto do tipo errado não é uma boa ideia; se " +"você receber um objeto de um programa Python e não tiver certeza de que ele " +"tem o tipo certo, primeiro execute uma verificação de tipo; por exemplo, " +"para verificar se um objeto é um dicionário, use :c:func:`PyDict_Check`. O " +"capítulo está estruturado como a \"árvore genealógica\" dos tipos de objetos " +"Python." + +#: ../../c-api/concrete.rst:19 +msgid "" +"While the functions described in this chapter carefully check the type of " +"the objects which are passed in, many of them do not check for ``NULL`` " +"being passed instead of a valid object. Allowing ``NULL`` to be passed in " +"can cause memory access violations and immediate termination of the " +"interpreter." +msgstr "" +"Enquanto as funções descritas neste capítulo verificam cuidadosamente o tipo " +"de objetos passados, muitos deles não verificam a passagem de ``NULL`` em " +"vez de um objeto válido. Permitir a passagem de ``NULL`` pode causar " +"violações ao acesso à memória e encerramento imediato do interpretador." + +#: ../../c-api/concrete.rst:28 +msgid "Fundamental Objects" +msgstr "Objetos Fundamentais" + +#: ../../c-api/concrete.rst:30 +msgid "" +"This section describes Python type objects and the singleton object ``None``." +msgstr "" +"Esta seção descreve os objetos de tipo Python e o objeto singleton ``None``." + +#: ../../c-api/concrete.rst:41 +msgid "Numeric Objects" +msgstr "Objetos Numéricos" + +#: ../../c-api/concrete.rst:56 +msgid "Sequence Objects" +msgstr "Objetos Sequência" + +#: ../../c-api/concrete.rst:60 +msgid "" +"Generic operations on sequence objects were discussed in the previous " +"chapter; this section deals with the specific kinds of sequence objects that " +"are intrinsic to the Python language." +msgstr "" +"Operações genéricas em objetos de sequência foram discutidas no capítulo " +"anterior; Esta seção lida com os tipos específicos de objetos sequência que " +"são intrínsecos à linguagem Python." + +#: ../../c-api/concrete.rst:78 +msgid "Container Objects" +msgstr "Coleções" + +#: ../../c-api/concrete.rst:91 +msgid "Function Objects" +msgstr "Objetos Function" + +#: ../../c-api/concrete.rst:102 +msgid "Other Objects" +msgstr "Outros Objetos" + +#: ../../c-api/concrete.rst:123 +msgid "C API for extension modules" +msgstr "API C para módulos de extensão" + +#: ../../c-api/concrete.rst:43 ../../c-api/concrete.rst:58 +#: ../../c-api/concrete.rst:80 +msgid "object" +msgstr "objeto" + +#: ../../c-api/concrete.rst:43 +msgid "numeric" +msgstr "numérico" + +#: ../../c-api/concrete.rst:58 +msgid "sequence" +msgstr "sequência" + +#: ../../c-api/concrete.rst:80 +msgid "mapping" +msgstr "mapeamento" diff --git a/c-api/contextvars.po b/c-api/contextvars.po new file mode 100644 index 000000000..014da1f8c --- /dev/null +++ b/c-api/contextvars.po @@ -0,0 +1,307 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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" + +#: ../../c-api/contextvars.rst:15 +msgid "" +"In Python 3.7.1 the signatures of all context variables C APIs were " +"**changed** to use :c:type:`PyObject` pointers instead of :c:type:" +"`PyContext`, :c:type:`PyContextVar`, and :c:type:`PyContextToken`, e.g.::" +msgstr "" +"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::" + +#: ../../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." +msgstr "Veja :issue:`34762` para mais detalhes." + +#: ../../c-api/contextvars.rst:29 +msgid "" +"This section details the public C API for the :mod:`contextvars` module." +msgstr "Esta seção detalha a API C pública para o módulo :mod:`contextvars`." + +#: ../../c-api/contextvars.rst:33 +msgid "" +"The C structure used to represent a :class:`contextvars.Context` object." +msgstr "" +"A estrutura C usada para representar um objeto :class:`contextvars.Context`." + +#: ../../c-api/contextvars.rst:38 +msgid "" +"The C structure used to represent a :class:`contextvars.ContextVar` object." +msgstr "" +"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." +msgstr "" +"A estrutura C usada para representar um objeto :class:`contextvars.Token`" + +#: ../../c-api/contextvars.rst:47 +msgid "The type object representing the *context* type." +msgstr "O objeto de tipo que representa o tipo de *contexto*." + +#: ../../c-api/contextvars.rst:51 +msgid "The type object representing the *context variable* type." +msgstr "O objeto de tipo que representa o tipo de *variável de contexto*." + +#: ../../c-api/contextvars.rst:55 +msgid "The type object representing the *context variable token* type." +msgstr "" +"O objeto de tipo que representa o tipo de *token de variável de contexto*." + +#: ../../c-api/contextvars.rst:58 +msgid "Type-check macros:" +msgstr "Macros de verificação de tipo:" + +#: ../../c-api/contextvars.rst:62 +msgid "" +"Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *o* for do tipo :c:data:`PyContext_Type`. *o* não deve " +"ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/contextvars.rst:67 +msgid "" +"Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *o* for do tipo :c:data:`PyContextVar_Type`. *o* não " +"deve ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/contextvars.rst:72 +msgid "" +"Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " +"``NULL``. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *o* for do tipo :c:data:`PyContextToken_Type`. *o* não " +"deve ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/contextvars.rst:76 +msgid "Context object management functions:" +msgstr "Funções de gerenciamento de objetos de contexto:" + +#: ../../c-api/contextvars.rst:80 +msgid "" +"Create a new empty context object. Returns ``NULL`` if an error has " +"occurred." +msgstr "" +"Cria um novo objeto de contexto vazio. Retorna ``NULL`` se um erro ocorreu." + +#: ../../c-api/contextvars.rst:85 +msgid "" +"Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " +"if an error has occurred." +msgstr "" +"Cria uma cópia rasa do objeto de contexto *ctx* passado. Retorna ``NULL`` se " +"um erro ocorreu." + +#: ../../c-api/contextvars.rst:90 +msgid "" +"Create a shallow copy of the current thread context. Returns ``NULL`` if an " +"error has occurred." +msgstr "" +"Cria uma cópia rasa do contexto da thread atual. Retorna ``NULL`` se um erro " +"ocorreu." + +#: ../../c-api/contextvars.rst:95 +msgid "" +"Set *ctx* as the current context for the current thread. Returns ``0`` on " +"success, and ``-1`` on error." +msgstr "" +"Defina *ctx* como o contexto atual para o thread atual. Retorna ``0`` em " +"caso de sucesso e ``-1`` em caso de erro." + +#: ../../c-api/contextvars.rst:100 +msgid "" +"Deactivate the *ctx* context and restore the previous context as the current " +"context for the current thread. Returns ``0`` on success, and ``-1`` on " +"error." +msgstr "" +"Desativa o contexto *ctx* e restaura o contexto anterior como o contexto " +"atual para a thread atual. Retorna ``0`` em caso de sucesso e ``-1`` em caso " +"de erro." + +#: ../../c-api/contextvars.rst:106 +msgid "" +"Register *callback* as a context object watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyContext_ClearWatcher`. In " +"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" +"Registra *callback* como um observador do objeto contexto para o " +"interpretador atual. Devolve um ID que pode ser passado para :c:func:" +"`PyContext_ClearWatcher`. Em caso de erro (por exemplo, não há IDs de " +"observadores disponíveis), devolve ``-1`` e define uma exceção." + +#: ../../c-api/contextvars.rst:115 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyContext_AddWatcher` for the current interpreter. Return ``0`` on success, " +"or ``-1`` and set an exception on error (e.g. if the given *watcher_id* was " +"never registered.)" +msgstr "" +"Libera o observador identificado por *watcher_id* anteriormente retornado " +"por :c:func:`PyContext_AddWatcher` para o interpretador atual. Retorna ``0`` " +"em caso de sucesso ou ``-1`` em caso de erro e levanta uma exceção (ex., se " +"o *watcher_id* dado não foi registrado.)" + +#: ../../c-api/contextvars.rst:124 +msgid "Enumeration of possible context object watcher events:" +msgstr "Enumeração de possíveis eventos do observador de objeto contexto:" + +#: ../../c-api/contextvars.rst:126 +msgid "" +"``Py_CONTEXT_SWITCHED``: The :term:`current context` has switched to a " +"different context. The object passed to the watch callback is the now-" +"current :class:`contextvars.Context` object, or None if no context is " +"current." +msgstr "" +"``Py_CONTEXT_SWITCHED``: O :term:`contexto atual` foi alternado para um " +"contexto diferente. O objeto passado para o retorno de chamada de observação " +"é o objeto :class:`contextvars.Context`, que está atualmente em uso, ou None " +"se não houver contexto atual." + +#: ../../c-api/contextvars.rst:135 +msgid "" +"Context object watcher callback function. The object passed to the callback " +"is event-specific; see :c:type:`PyContextEvent` for details." +msgstr "" +"Função de retorno de chamada do observador de objetos contexto. O objeto " +"passado para o retorno de chamada é específico do evento; consulte :c:type:" +"`PyContextEvent` para obter detalhes." + +#: ../../c-api/contextvars.rst:138 +msgid "" +"If the callback returns with an exception set, it must return ``-1``; this " +"exception will be printed as an unraisable exception using :c:func:" +"`PyErr_FormatUnraisable`. Otherwise it should return ``0``." +msgstr "" +"Se o retorno de chamada retornar com uma exceção definida, ele deverá " +"retornar ``-1``; essa exceção será impressa como uma exceção não levantável " +"usando :c:func:`PyErr_FormatUnraisable`. Caso contrário, deverá retornar " +"``0``." + +#: ../../c-api/contextvars.rst:142 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" +"É 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 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/contextvars.rst:151 +msgid "Context variable functions:" +msgstr "Funções de variável de contexto:" + +#: ../../c-api/contextvars.rst:155 +msgid "" +"Create a new ``ContextVar`` object. The *name* parameter is used for " +"introspection and debug purposes. The *def* parameter specifies a default " +"value for the context variable, or ``NULL`` for no default. If an error has " +"occurred, this function returns ``NULL``." +msgstr "" +"Cria um novo objeto ``ContextVar``. O parâmetro *name* é usado para fins de " +"introspecção e depuração. O parâmetro *def* especifica um valor padrão para " +"a variável de contexto, ou ``NULL`` para nenhum padrão. Se ocorrer um erro, " +"esta função retorna ``NULL``." + +#: ../../c-api/contextvars.rst:162 +msgid "" +"Get the value of a context variable. Returns ``-1`` if an error has " +"occurred during lookup, and ``0`` if no error occurred, whether or not a " +"value was found." +msgstr "" +"Obtém o valor de uma variável de contexto. Retorna ``-1`` se um erro ocorreu " +"durante a pesquisa, e ``0`` se nenhum erro ocorreu, se um valor foi " +"encontrado ou não." + +#: ../../c-api/contextvars.rst:166 +msgid "" +"If the context variable was found, *value* will be a pointer to it. If the " +"context variable was *not* found, *value* will point to:" +msgstr "" +"Se a variável de contexto foi encontrada, *value* será um ponteiro para ela. " +"Se a variável de contexto *não* foi encontrada, *value* apontará para:" + +#: ../../c-api/contextvars.rst:169 +msgid "*default_value*, if not ``NULL``;" +msgstr "*default_value*, se não for ``NULL``;" + +#: ../../c-api/contextvars.rst:170 +msgid "the default value of *var*, if not ``NULL``;" +msgstr "o valor padrão de *var*, se não for ``NULL``;" + +#: ../../c-api/contextvars.rst:171 +msgid "``NULL``" +msgstr "``NULL``" + +#: ../../c-api/contextvars.rst:173 +msgid "Except for ``NULL``, the function returns a new reference." +msgstr "Exceto para ``NULL``, a função retorna uma nova referência." + +#: ../../c-api/contextvars.rst:177 +msgid "" +"Set the value of *var* to *value* in the current context. Returns a new " +"token object for this change, or ``NULL`` if an error has occurred." +msgstr "" +"Define o valor de *var* como *value* no contexto atual. Retorna um novo " +"objeto token para esta alteração, ou ``NULL`` se um erro ocorreu." + +#: ../../c-api/contextvars.rst:182 +msgid "" +"Reset the state of the *var* context variable to that it was in before :c:" +"func:`PyContextVar_Set` that returned the *token* was called. This function " +"returns ``0`` on success and ``-1`` on error." +msgstr "" +"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 " +"retorna ``0`` em caso de sucesso e ``-1`` em caso de erro." diff --git a/c-api/conversion.po b/c-api/conversion.po new file mode 100644 index 000000000..66d956932 --- /dev/null +++ b/c-api/conversion.po @@ -0,0 +1,458 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/conversion.rst:6 +msgid "String conversion and formatting" +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." + +#: ../../c-api/conversion.rst:13 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the extra arguments. See the Unix man page :manpage:" +"`snprintf(3)`." +msgstr "" +"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)`." + +#: ../../c-api/conversion.rst:19 +msgid "" +"Output not more than *size* bytes to *str* according to the format string " +"*format* and the variable argument list *va*. Unix man page :manpage:" +"`vsnprintf(3)`." +msgstr "" +"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 "" +":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " +"library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " +"is to guarantee consistent behavior in corner cases, which the Standard C " +"functions do not." +msgstr "" +":c: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 "" +"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " +"They never write more than *size* bytes (including the trailing ``'\\0'``) " +"into str. Both functions require that ``str != NULL``, ``size > 0``, " +"``format != NULL`` and ``size < INT_MAX``. Note that this means there is no " +"equivalent to the C99 ``n = snprintf(NULL, 0, ...)`` which would determine " +"the necessary buffer size." +msgstr "" +"Os invólucros garantem que ``str[size-1]`` seja sempre ``'\\0'`` no retorno. " +"Eles nunca escrevem mais do que *size* bytes (incluindo o ``'\\0'`` ao " +"final) em str. Ambas as funções exigem que ``str != NULL``, ``size > 0``, " +"``format != NULL`` e ``size < INT_MAX``. Note que isso significa que não há " +"equivalente ao ``n = snprintf(NULL, 0, ...)`` do C99 que determinaria o " +"tamanho de buffer necessário." + +#: ../../c-api/conversion.rst:34 +msgid "" +"The return value (*rv*) for these functions should be interpreted as follows:" +msgstr "" +"O valor de retorno (*rv*) para essas funções deve ser interpretado da " +"seguinte forma:" + +#: ../../c-api/conversion.rst:36 +msgid "" +"When ``0 <= rv < size``, the output conversion was successful and *rv* " +"characters were written to *str* (excluding the trailing ``'\\0'`` byte at " +"``str[rv]``)." +msgstr "" +"Quando ``0 <= rv < size``, a conversão de saída foi bem-sucedida e os " +"caracteres de *rv* foram escritos em *str* (excluindo o ``'\\0'`` byte em " +"``str[rv]``)." + +#: ../../c-api/conversion.rst:40 +msgid "" +"When ``rv >= size``, the output conversion was truncated and a buffer with " +"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is " +"``'\\0'`` in this case." +msgstr "" +"Quando ``rv >= size``, a conversão de saída foi truncada e um buffer com " +"``rv + 1`` bytes teria sido necessário para ter sucesso. ``str[size-1]`` é " +"``'\\0'`` neste caso." + +#: ../../c-api/conversion.rst:44 +msgid "" +"When ``rv < 0``, the output conversion failed and ``str[size-1]`` is " +"``'\\0'`` in this case too, but the rest of *str* is undefined. The exact " +"cause of the error depends on the underlying platform." +msgstr "" +"Quando ``rv < 0``, a conversão da saída falhou e ``str[size-1]`` é ``'\\0'`` " +"neste caso também, mas o resto de *str* é indefinido. A causa exata do erro " +"depende da plataforma subjacente." + +#: ../../c-api/conversion.rst:49 +msgid "" +"The following functions provide locale-independent string to number " +"conversions." +msgstr "" +"As funções a seguir fornecem strings independentes de localidade para " +"conversões de números." + +#: ../../c-api/conversion.rst:53 +msgid "" +"Convert the initial part of the string in ``str`` to an :c:expr:`unsigned " +"long` value according to the given ``base``, which must be between ``2`` and " +"``36`` inclusive, or be the special value ``0``." +msgstr "" +"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 "" +"Leading white space and case of characters are ignored. If ``base`` is zero " +"it looks for a leading ``0b``, ``0o`` or ``0x`` to tell which base. If " +"these are absent it defaults to ``10``. Base must be 0 or between 2 and 36 " +"(inclusive). If ``ptr`` is non-``NULL`` it will contain a pointer to the " +"end of the scan." +msgstr "" +"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." +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 "Veja também a página man do Unix :manpage:`strtoul(3)`." + +#: ../../c-api/conversion.rst:75 +msgid "" +"Convert the initial part of the string in ``str`` to an :c:expr:`long` value " +"according to the given ``base``, which must be between ``2`` and ``36`` " +"inclusive, or be the special value ``0``." +msgstr "" +"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 "Veja também a página man do Unix :manpage:`strtol(3)`." + +#: ../../c-api/conversion.rst:89 +msgid "" +"Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on " +"failure. The set of accepted strings corresponds to the set of strings " +"accepted by Python's :func:`float` constructor, except that ``s`` must not " +"have leading or trailing whitespace. The conversion is independent of the " +"current locale." +msgstr "" +"Converte uma string ``s`` em :c:expr:`double`, levantando uma exceção Python " +"em caso de falha. O conjunto de strings aceitas corresponde ao conjunto de " +"strings aceito pelo construtor :func:`float` do Python, exceto que ``s`` não " +"deve ter espaços em branco à esquerda ou à direita. A conversão é " +"independente da localidade atual." + +#: ../../c-api/conversion.rst:95 +msgid "" +"If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:" +"`ValueError` and return ``-1.0`` if the string is not a valid representation " +"of a floating-point number." +msgstr "" +"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 "" +"If endptr is not ``NULL``, convert as much of the string as possible and set " +"``*endptr`` to point to the first unconverted character. If no initial " +"segment of the string is the valid representation of a floating-point " +"number, set ``*endptr`` to point to the beginning of the string, raise " +"ValueError, and return ``-1.0``." +msgstr "" +"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 retorna ``-1.0``." + +#: ../../c-api/conversion.rst:106 +msgid "" +"If ``s`` represents a value that is too large to store in a float (for " +"example, ``\"1e500\"`` is such a string on many platforms) then if " +"``overflow_exception`` is ``NULL`` return ``Py_INFINITY`` (with an " +"appropriate sign) and don't set any exception. Otherwise, " +"``overflow_exception`` must point to a Python exception object; raise that " +"exception and return ``-1.0``. In both cases, set ``*endptr`` to point to " +"the first character after the converted value." +msgstr "" +"Se ``s`` representa um valor que é muito grande para armazenar em um ponto " +"flutuante (por exemplo, ``\"1e500\"`` é uma string assim em muitas " +"plataformas), então se ``overflow_exception`` for ``NULL`` retorna " +"``Py_INFINITY`` (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; 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 +msgid "" +"If any other error occurs during the conversion (for example an out-of-" +"memory error), set the appropriate Python exception and return ``-1.0``." +msgstr "" +"Se qualquer outro erro ocorrer durante a conversão (por exemplo, um erro de " +"falta de memória), define a exceção Python apropriada e retorna ``-1.0``." + +#: ../../c-api/conversion.rst:123 +msgid "" +"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, " +"*precision*, and *flags*." +msgstr "" +"Converte um *val* :c:expr:`double` para uma string usando *format_code*, " +"*precision* e *flags* fornecidos." + +#: ../../c-api/conversion.rst:126 +msgid "" +"*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " +"``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is " +"ignored. The ``'r'`` format code specifies the standard :func:`repr` format." +msgstr "" +"*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`." + +#: ../../c-api/conversion.rst:131 +msgid "*flags* can be zero or more of the following values or-ed together:" +msgstr "" +"*flags* podem ser zero ou mais dos seguintes valores combinados por meio do " +"operador OR:" + +#: ../../c-api/conversion.rst:137 +msgid "" +"Always precede the returned string with a sign character, even if *val* is " +"non-negative." +msgstr "" +"Sempre preceda a string retornada com um caractere de sinal, mesmo que *val* " +"não seja negativo." + +#: ../../c-api/conversion.rst:142 +msgid "Ensure that the returned string will not look like an integer." +msgstr "Garante que a string retornada não se pareça com um número inteiro." + +#: ../../c-api/conversion.rst:146 +msgid "" +"Apply \"alternate\" formatting rules. See the documentation for the :c:func:" +"`PyOS_snprintf` ``'#'`` specifier for details." +msgstr "" +"Aplica as regras de formatação \"alternativas\". Veja a documentação para o " +"especificador ``'#'`` de :c:func:`PyOS_snprintf` para detalhes." + +#: ../../c-api/conversion.rst:152 +msgid "Negative zero is converted to positive zero." +msgstr "Zero negativo é convertido para zerp positivo." + +#: ../../c-api/conversion.rst:156 +msgid "" +"If *ptype* is non-``NULL``, then the value it points to will be set to one " +"of the following constants depending on the type of *val*:" +msgstr "" + +#: ../../c-api/conversion.rst:163 +msgid "*\\*ptype*" +msgstr "" + +#: ../../c-api/conversion.rst:164 +msgid "type of *val*" +msgstr "" + +#: ../../c-api/conversion.rst:166 +msgid "finite number" +msgstr "" + +#: ../../c-api/conversion.rst:168 +msgid "infinite number" +msgstr "" + +#: ../../c-api/conversion.rst:170 +msgid "not a number" +msgstr "" + +#: ../../c-api/conversion.rst:172 +msgid "" +"The return value is a pointer to *buffer* with the converted string or " +"``NULL`` if the conversion failed. The caller is responsible for freeing the " +"returned string by calling :c:func:`PyMem_Free`." +msgstr "" +"O valor de retorno é um ponteiro para *buffer* com a string convertida ou " +"``NULL`` se a conversão falhou. O chamador é responsável por liberar a " +"string retornada chamando :c:func:`PyMem_Free`." + +#: ../../c-api/conversion.rst:182 +msgid "" +"Case insensitive comparison of strings. These functions work almost " +"identically to :c:func:`!strcmp` and :c:func:`!strncmp` (respectively), " +"except that they ignore the case of ASCII characters." +msgstr "" +"Comparação de strings sem distinção entre maiúsculas e minúsculas. Essas " +"funções funcionam de maneira quase idêntica a :c:func:`!strcmp` e :c:func:`!" +"strncmp` (respectivamente), exceto pelo fato de ignorarem maiúsculas e " +"minúsculas em caracteres ASCII." + +#: ../../c-api/conversion.rst:186 +msgid "" +"Return ``0`` if the strings are equal, a negative value if *str1* sorts " +"lexicographically before *str2*, or a positive value if it sorts after." +msgstr "" +"Retorna ``0`` se as strings forem iguais, um valor negativo se *str1* for " +"ordenada lexicograficamente antes de *str2*, ou um valor positivo se for " +"ordenada depois." + +#: ../../c-api/conversion.rst:189 +msgid "" +"In the *str1* or *str2* arguments, a NUL byte marks the end of the string. " +"For :c:func:`!PyOS_mystrnicmp`, the *size* argument gives the maximum size " +"of the string, as if NUL was present at the index given by *size*." +msgstr "" +"Nos argumentos *str1* ou *str2*, um byte NUL marca o fim da string. Para :c:" +"func:`!PyOS_mystrnicmp`, o argumento *size* fornece o tamanho máximo da " +"string, como se NUL estivesse presente no índice fornecido por *size*." + +#: ../../c-api/conversion.rst:193 +msgid "These functions do not use the locale." +msgstr "Estas funções não usam a localidade." + +#: ../../c-api/conversion.rst:199 +msgid "Case insensitive comparison of strings." +msgstr "Comparação de strings sem distinção entre maiúsculas e minúsculas." + +#: ../../c-api/conversion.rst:201 +msgid "" +"On Windows, these are aliases of :c:func:`!stricmp` and :c:func:`!strnicmp`, " +"respectively." +msgstr "" +"No Windows, estes são apelidos de :c:func:`!stricmp` e :c:func:`!strnicmp`, " +"respectivamente." + +#: ../../c-api/conversion.rst:204 +msgid "" +"On other platforms, they are aliases of :c:func:`PyOS_mystricmp` and :c:func:" +"`PyOS_mystrnicmp`, respectively." +msgstr "" +"Em outras plataformas, são apelidos de :c:func:`PyOS_mystricmp` e :c:func:" +"`PyOS_mystrnicmp`, respectivamente." + +#: ../../c-api/conversion.rst:209 +msgid "Character classification and conversion" +msgstr "Classificação e conversão de caracteres" + +#: ../../c-api/conversion.rst:211 +msgid "" +"The following macros provide locale-independent (unlike the C standard " +"library ``ctype.h``) character classification and conversion. The argument " +"must be a signed or unsigned :c:expr:`char`." +msgstr "" +"As macros a seguir fornecem classificação e conversão de caracteres " +"independentes de localidade (ao contrário da biblioteca padrão C ``ctype." +"h``). O argumento deve ser um :c:expr:`char` com ou sem sinal." + +#: ../../c-api/conversion.rst:218 +msgid "Return true if the character *c* is an alphanumeric character." +msgstr "Retorna verdadeiro se o caractere *c* for um caractere alfanumérico." + +#: ../../c-api/conversion.rst:223 +msgid "" +"Return true if the character *c* is an alphabetic character (``a-z`` and ``A-" +"Z``)." +msgstr "" +"Retorna verdadeiro se o caractere *c* for um caractere alfabético (``a-z`` e " +"``A-Z``)." + +#: ../../c-api/conversion.rst:228 +msgid "Return true if the character *c* is a decimal digit (``0-9``)." +msgstr "Retorna verdadeiro se o caractere *c* for um dígito decimal (``0-9``)." + +#: ../../c-api/conversion.rst:233 +msgid "Return true if the character *c* is a lowercase ASCII letter (``a-z``)." +msgstr "" +"Retorna verdadeiro se o caractere *c* for uma letra minúscula do ASCII (``a-" +"z``)." + +#: ../../c-api/conversion.rst:238 +msgid "" +"Return true if the character *c* is an uppercase ASCII letter (``A-Z``)." +msgstr "" +"Retorna verdadeiro se o caractere *c* for uma letra maiúscula do ASCII (``A-" +"Z``)." + +#: ../../c-api/conversion.rst:243 +msgid "" +"Return true if the character *c* is a whitespace character (space, tab, " +"carriage return, newline, vertical tab, or form feed)." +msgstr "" +"Retorna verdadeiro se o caractere *c* for um caractere de espaço em branco " +"(espaço, tabulação, retorno de carro, nova linha, tabulação vertical ou " +"alimentação de formulário)." + +#: ../../c-api/conversion.rst:249 +msgid "" +"Return true if the character *c* is a hexadecimal digit (``0-9``, ``a-f``, " +"and ``A-F``)." +msgstr "" +"Retorna verdadeiro se o caractere *c* for um dígito hexadecimal (``0-9``, " +"``a-f`` e ``A-F``)." + +#: ../../c-api/conversion.rst:255 +msgid "Return the lowercase equivalent of the character *c*." +msgstr "Retorna o equivalente em minúsculas do caractere *c*." + +#: ../../c-api/conversion.rst:260 +msgid "Return the uppercase equivalent of the character *c*." +msgstr "Retorna o equivalente em maiúsculas do caractere *c*." diff --git a/c-api/coro.po b/c-api/coro.po new file mode 100644 index 000000000..bcf71d64f --- /dev/null +++ b/c-api/coro.po @@ -0,0 +1,64 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/coro.rst:6 +msgid "Coroutine Objects" +msgstr "Objetos corrotina" + +#: ../../c-api/coro.rst:10 +msgid "" +"Coroutine objects are what functions declared with an ``async`` keyword " +"return." +msgstr "" +"Os objetos corrotina são aquelas funções declaradas com um retorno de " +"palavra-chave ``async``." + +#: ../../c-api/coro.rst:16 +msgid "The C structure used for coroutine objects." +msgstr "A estrutura C utilizada para objetos corrotinas." + +#: ../../c-api/coro.rst:21 +msgid "The type object corresponding to coroutine objects." +msgstr "O tipo de objeto correspondente a objetos corrotina." + +#: ../../c-api/coro.rst:26 +msgid "" +"Return true if *ob*'s type is :c:type:`PyCoro_Type`; *ob* must not be " +"``NULL``. This function always succeeds." +msgstr "" +"Retorna true se o tipo do *ob* é :c:type:`PyCoro_Type`; *ob* não deve ser " +"``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/coro.rst:32 +msgid "" +"Create and return a new coroutine object based on the *frame* object, with " +"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " +"to *frame* is stolen by this function. The *frame* argument must not be " +"``NULL``." +msgstr "" +"Cria e retorna um novo objeto de corrotina com base no objeto *frame*, com " +"``__name__`` e ``__qualname__`` definido como *name* e *qualname*. Uma " +"referência a *frame* é roubada por esta função. O argumento *frame* não deve " +"ser ``NULL``." diff --git a/c-api/curses.po b/c-api/curses.po new file mode 100644 index 000000000..e1ad3c852 --- /dev/null +++ b/c-api/curses.po @@ -0,0 +1,250 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/curses.rst:4 +msgid "Curses C API" +msgstr "API C de curses" + +#: ../../c-api/curses.rst:6 +msgid "" +":mod:`curses` exposes a small C interface for extension modules. Consumers " +"must include the header file :file:`py_curses.h` (which is not included by " +"default by :file:`Python.h`) and :c:func:`import_curses` must be invoked, " +"usually as part of the module initialisation function, to populate :c:var:" +"`PyCurses_API`." +msgstr "" +":mod:`curses` expõe uma pequena interface C para módulos de extensão. Os " +"usuários devem incluir o arquivo de cabeçalho :file:`py_curses.h` (que não é " +"incluído por padrão em :file:`Python.h`) e :c:func:`import_curses` deve ser " +"invocada, geralmente como parte da função de inicialização do módulo, para " +"popular :c:var:`PyCurses_API`." + +#: ../../c-api/curses.rst:14 +msgid "" +"Neither the C API nor the pure Python :mod:`curses` module are compatible " +"with subinterpreters." +msgstr "" +"Nem a API C nem o módulo :mod:`curses` do Python puro são compatíveis com " +"subinterpretadores." + +#: ../../c-api/curses.rst:19 +msgid "" +"Import the curses C API. The macro does not need a semi-colon to be called." +msgstr "" +"Importa a API C do curses. A macro não precisa de ponto e vírgula para ser " +"chamada." + +#: ../../c-api/curses.rst:21 +msgid "On success, populate the :c:var:`PyCurses_API` pointer." +msgstr "Em caso de sucesso, popula o ponteiro :c:var:`PyCurses_API`." + +#: ../../c-api/curses.rst:23 +msgid "" +"On failure, set :c:var:`PyCurses_API` to NULL and set an exception. The " +"caller must check if an error occurred via :c:func:`PyErr_Occurred`:" +msgstr "" +"Em caso de falha, define :c:var:`PyCurses_API` como NULL e levanta uma " +"exceção. O chamador deve verificar se ocorreu um erro através de :c:func:" +"`PyErr_Occurred`:" + +#: ../../c-api/curses.rst:26 +msgid "" +"import_curses(); // semi-colon is optional but recommended\n" +"if (PyErr_Occurred()) { /* cleanup */ }" +msgstr "" +"import_curses(); // O ponto e vírgula é opcional, mas recomendado.\n" +"if (PyErr_Occurred()) { /* cleanup */ }" + +#: ../../c-api/curses.rst:34 +msgid "" +"Dynamically allocated object containing the curses C API. This variable is " +"only available once :c:macro:`import_curses` succeeds." +msgstr "" +"Objeto alocado dinamicamente contendo a API C do curses. Esta variável só " +"estará disponível após a execução bem-sucedida da macro :c:macro:" +"`import_curses`." + +#: ../../c-api/curses.rst:37 +msgid "``PyCurses_API[0]`` corresponds to :c:data:`PyCursesWindow_Type`." +msgstr "``PyCurses_API[0]`` corresponde a :c:data:`PyCursesWindow_Type`." + +#: ../../c-api/curses.rst:39 +msgid "" +"``PyCurses_API[1]``, ``PyCurses_API[2]``, and ``PyCurses_API[3]`` are " +"pointers to predicate functions of type ``int (*)(void)``." +msgstr "" +"``PyCurses_API[1]``, ``PyCurses_API[2]`` e ``PyCurses_API[3]`` são ponteiros " +"para funções predicativas do tipo ``int (*)(void)``." + +#: ../../c-api/curses.rst:42 +msgid "" +"When called, these predicates return whether :func:`curses.setupterm`, :func:" +"`curses.initscr`, and :func:`curses.start_color` have been called " +"respectively." +msgstr "" +"Quando chamados, esses predicados retornam se :func:`curses.setupterm`, :" +"func:`curses.initscr` e :func:`curses.start_color` foram chamados, " +"respectivamente." + +#: ../../c-api/curses.rst:46 +msgid "" +"See also the convenience macros :c:macro:`PyCursesSetupTermCalled`, :c:macro:" +"`PyCursesInitialised`, and :c:macro:`PyCursesInitialisedColor`." +msgstr "" +"Veja também as macros de conveniência :c:macro:`PyCursesSetupTermCalled`, :c:" +"macro:`PyCursesInitialised` e :c:macro:`PyCursesInitialisedColor`." + +#: ../../c-api/curses.rst:51 +msgid "" +"The number of entries in this structure is subject to changes. Consider " +"using :c:macro:`PyCurses_API_pointers` to check if new fields are available " +"or not." +msgstr "" +"O número de entradas nesta estrutura está sujeito a alterações. Considere " +"usar :c:macro:`PyCurses_API_pointers` para verificar se novos campos estão " +"disponíveis." + +#: ../../c-api/curses.rst:58 +msgid "" +"The number of accessible fields (``4``) in :c:var:`PyCurses_API`. This " +"number is incremented whenever new fields are added." +msgstr "" +"O número de campos acessíveis (``4``) em :c:var:`PyCurses_API`. Esse número " +"é incrementado sempre que novos campos são adicionados." + +#: ../../c-api/curses.rst:64 +msgid "" +"The :ref:`heap type ` corresponding to :class:`curses.window`." +msgstr "" +"O :ref:`tipo de heap ` correspondente a :class:`curses.window`." + +#: ../../c-api/curses.rst:69 +msgid "" +"Return true if *op* is a :class:`curses.window` instance, false otherwise." +msgstr "" +"Retorna verdadeiro se *op* for uma instância de :class:`curses.window`, " +"falso caso contrário." + +#: ../../c-api/curses.rst:72 +msgid "" +"The following macros are convenience macros expanding into C statements. In " +"particular, they can only be used as ``macro;`` or ``macro``, but not " +"``macro()`` or ``macro();``." +msgstr "" +"As macros a seguir são macros de conveniência que se expandem em instruções " +"C. Em particular, elas só podem ser usadas como ``macro;`` ou ``macro``, mas " +"não como ``macro()`` ou ``macro();``." + +#: ../../c-api/curses.rst:78 +msgid "Macro checking if :func:`curses.setupterm` has been called." +msgstr "Macro que verifica se :func:`curses.setupterm` foi chamada." + +#: ../../c-api/curses.rst:80 ../../c-api/curses.rst:97 +#: ../../c-api/curses.rst:114 +msgid "The macro expansion is roughly equivalent to:" +msgstr "A expansão de macro é aproximadamente equivalente a:" + +#: ../../c-api/curses.rst:82 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1];\n" +" if (!was_setupterm_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1];\n" +" if (!was_setupterm_called()) {\n" +" return NULL;\n" +" }\n" +"}" + +#: ../../c-api/curses.rst:95 +msgid "Macro checking if :func:`curses.initscr` has been called." +msgstr "Macro que verifica se :func:`curses.initscr` foi chamada." + +#: ../../c-api/curses.rst:99 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_initscr_called = (predicate_t)PyCurses_API[2];\n" +" if (!was_initscr_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_initscr_called = (predicate_t)PyCurses_API[2];\n" +" if (!was_initscr_called()) {\n" +" return NULL;\n" +" }\n" +"}" + +#: ../../c-api/curses.rst:112 +msgid "Macro checking if :func:`curses.start_color` has been called." +msgstr "Macro que verifica se :func:`curses.start_color` foi chamada." + +#: ../../c-api/curses.rst:116 +msgid "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_start_color_called = (predicate_t)PyCurses_API[3];\n" +" if (!was_start_color_called()) {\n" +" return NULL;\n" +" }\n" +"}" +msgstr "" +"{\n" +" typedef int (*predicate_t)(void);\n" +" predicate_t was_start_color_called = (predicate_t)PyCurses_API[3];\n" +" if (!was_start_color_called()) {\n" +" return NULL;\n" +" }\n" +"}" + +#: ../../c-api/curses.rst:128 +msgid "Internal data" +msgstr "Dados internos" + +#: ../../c-api/curses.rst:130 +msgid "" +"The following objects are exposed by the C API but should be considered " +"internal-only." +msgstr "" +"Os seguintes objetos são expostos pela API C, mas devem ser considerados " +"apenas para uso interno." + +#: ../../c-api/curses.rst:135 +msgid "Name of the curses capsule to pass to :c:func:`PyCapsule_Import`." +msgstr "" +"Nome da cápsula do curses a ser passada para :c:func:`PyCapsule_Import`." + +#: ../../c-api/curses.rst:137 +msgid "Internal usage only. Use :c:macro:`import_curses` instead." +msgstr "Uso interno apenas. Use :c:macro:`import_curses` em vez disso." diff --git a/c-api/datetime.po b/c-api/datetime.po new file mode 100644 index 000000000..bee6a509f --- /dev/null +++ b/c-api/datetime.po @@ -0,0 +1,474 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/datetime.rst:6 +msgid "DateTime Objects" +msgstr "Objetos DateTime" + +#: ../../c-api/datetime.rst:8 +msgid "" +"Various date and time objects are supplied by the :mod:`datetime` module. " +"Before using any of these functions, the header file :file:`datetime.h` must " +"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 "Import the datetime C API." +msgstr "Importa a API C de datetime." + +#: ../../c-api/datetime.rst:20 +msgid "" +"On success, populate the :c:var:`PyDateTimeAPI` pointer. On failure, set :c:" +"var:`PyDateTimeAPI` to ``NULL`` and set an exception. The caller must check " +"if an error occurred via :c:func:`PyErr_Occurred`:" +msgstr "" +"Em caso de sucesso, preenche o ponteiro :c:var:`PyDateTimeAPI`. Em caso de " +"falha, define :c:var:`PyDateTimeAPI` como ``NULL`` e lança uma exceção. O " +"chamador deve verificar se ocorreu um erro através de :c:func:" +"`PyErr_Occurred`:" + +#: ../../c-api/datetime.rst:24 +msgid "" +"PyDateTime_IMPORT;\n" +"if (PyErr_Occurred()) { /* cleanup */ }" +msgstr "" +"PyDateTime_IMPORT;\n" +"if (PyErr_Occurred()) { /* limpeza */ }" + +#: ../../c-api/datetime.rst:31 +msgid "This is not compatible with subinterpreters." +msgstr "Isso não é compatível com subinterpretadores." + +#: ../../c-api/datetime.rst:35 +msgid "Structure containing the fields for the datetime C API." +msgstr "Estrutura contendo os campos para a API C de datetime." + +#: ../../c-api/datetime.rst:37 +msgid "The fields of this structure are private and subject to change." +msgstr "Os campos desta estrutura são privados e sujeitos a alterações." + +#: ../../c-api/datetime.rst:39 +msgid "Do not use this directly; prefer ``PyDateTime_*`` APIs instead." +msgstr "Não use isto diretamente; prefira as APIs ``PyDateTime_*``." + +#: ../../c-api/datetime.rst:43 +msgid "Dynamically allocated object containing the datetime C API." +msgstr "Objeto alocado dinamicamente contendo a API C de datetime." + +#: ../../c-api/datetime.rst:45 +msgid "" +"This variable is only available once :c:macro:`PyDateTime_IMPORT` succeeds." +msgstr "" +"Esta variável só estará disponível após a execução bem-sucedida de :c:macro:" +"`PyDateTime_IMPORT`." + +#: ../../c-api/datetime.rst:49 +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:53 +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:57 +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:61 +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:65 +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:70 +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:75 +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:80 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python type for the " +"difference between two datetime values; it is the same object as :class:" +"`datetime.timedelta` in the Python layer." +msgstr "" +"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:86 +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:90 +msgid "Macro for access to the UTC singleton:" +msgstr "Macro para acesso ao singleton UTC:" + +#: ../../c-api/datetime.rst:94 +msgid "" +"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`." + +#: ../../c-api/datetime.rst:100 +msgid "Type-check macros:" +msgstr "Macros de verificação de tipo:" + +#: ../../c-api/datetime.rst:104 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " +"of :c:data:`!PyDateTime_DateType`. *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"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:111 +msgid "" +"Return true if *ob* is of type :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`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/datetime.rst:117 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " +"subtype of :c:data:`!PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " +"This function always succeeds." +msgstr "" +"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:124 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " +"not be ``NULL``. This function always succeeds." +msgstr "" +"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:130 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " +"of :c:data:`!PyDateTime_TimeType`. *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"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:137 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " +"be ``NULL``. This function always succeeds." +msgstr "" +"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:143 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " +"of :c:data:`!PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"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:150 +msgid "" +"Return true if *ob* is of type :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`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/datetime.rst:156 +msgid "" +"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " +"of :c:data:`!PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"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:163 +msgid "" +"Return true if *ob* is of type :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`. *ob* " +"não deve ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/datetime.rst:167 +msgid "Macros to create objects:" +msgstr "Macros para criar objetos:" + +#: ../../c-api/datetime.rst:171 +msgid "" +"Return a :class:`datetime.date` object with the specified year, month and " +"day." +msgstr "" +"Retorna um objeto :class:`datetime.date` com o ano, mês e dia especificados." + +#: ../../c-api/datetime.rst:176 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second and microsecond." +msgstr "" +"Retorna um objeto :class:`datetime.datetime` com o ano, mês, dia, hora, " +"minuto, segundo, microssegundo especificados." + +#: ../../c-api/datetime.rst:182 +msgid "" +"Return a :class:`datetime.datetime` object with the specified year, month, " +"day, hour, minute, second, microsecond and fold." +msgstr "" +"Retorna um objeto :class:`datetime.datetime` com o ano, mês, dia, hora, " +"minuto, segundo, microssegundo e a dobra especificados." + +#: ../../c-api/datetime.rst:190 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second and microsecond." +msgstr "" +"Retorna um objeto :class:`datetime.time` com a hora, minuto, segundo e " +"microssegundo especificados." + +#: ../../c-api/datetime.rst:196 +msgid "" +"Return a :class:`datetime.time` object with the specified hour, minute, " +"second, microsecond and fold." +msgstr "" +"Retorna um objeto :class:`datetime.time` com a hora, minuto, segundo, " +"microssegundo e a dobra especificados." + +#: ../../c-api/datetime.rst:204 +msgid "" +"Return a :class:`datetime.timedelta` object representing the given number of " +"days, seconds and microseconds. Normalization is performed so that the " +"resulting number of microseconds and seconds lie in the ranges documented " +"for :class:`datetime.timedelta` objects." +msgstr "" +"Retorna um objeto :class:`datetime.timedelta` representando o número " +"especificado de dias, segundos e microssegundos. A normalização é realizada " +"para que o número resultante de microssegundos e segundos esteja nos " +"intervalos documentados para objetos de :class:`datetime.timedelta`." + +#: ../../c-api/datetime.rst:212 +msgid "" +"Return a :class:`datetime.timezone` object with an unnamed fixed offset " +"represented by the *offset* argument." +msgstr "" +"Retorna um objeto :class:`datetime.timezone` com um deslocamento fixo sem " +"nome representado pelo argumento *offset*." + +#: ../../c-api/datetime.rst:220 +msgid "" +"Return a :class:`datetime.timezone` object with a fixed offset represented " +"by the *offset* argument and with tzname *name*." +msgstr "" +"Retorna um objeto :class:`datetime.timezone` com um deslocamento fixo " +"representado pelo argumento *offset* e com tzname *name*." + +#: ../../c-api/datetime.rst:226 +msgid "" +"Macros to extract fields from date objects. The argument must be an " +"instance of :c:type:`PyDateTime_Date`, including subclasses (such as :c:type:" +"`PyDateTime_DateTime`). The argument must not be ``NULL``, and the type is " +"not checked:" +msgstr "" +"Macros 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:233 +msgid "Return the year, as a positive int." +msgstr "Retorna o ano, como um inteiro positivo." + +#: ../../c-api/datetime.rst:238 +msgid "Return the month, as an int from 1 through 12." +msgstr "Retorna o mês, como um inteiro de 1 a 12." + +#: ../../c-api/datetime.rst:243 +msgid "Return the day, as an int from 1 through 31." +msgstr "Retorna o dia, como um inteiro de 1 a 31." + +#: ../../c-api/datetime.rst:246 +msgid "" +"Macros to extract fields from datetime objects. The argument must be an " +"instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " +"argument must not be ``NULL``, and the type is not checked:" +msgstr "" +"Macros 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:252 ../../c-api/datetime.rst:290 +msgid "Return the hour, as an int from 0 through 23." +msgstr "Retorna a hora, como um inteiro de 0 a 23." + +#: ../../c-api/datetime.rst:257 ../../c-api/datetime.rst:295 +msgid "Return the minute, as an int from 0 through 59." +msgstr "Retorna o minuto, como um inteiro de 0 a 59." + +#: ../../c-api/datetime.rst:262 ../../c-api/datetime.rst:300 +msgid "Return the second, as an int from 0 through 59." +msgstr "Retorna o segundo, como um inteiro de 0 a 59." + +#: ../../c-api/datetime.rst:267 ../../c-api/datetime.rst:305 +msgid "Return the microsecond, as an int from 0 through 999999." +msgstr "Retorna o microssegundo, como um inteiro de 0 a 999999." + +#: ../../c-api/datetime.rst:272 ../../c-api/datetime.rst:310 +msgid "Return the fold, as an int from 0 through 1." +msgstr "Retorna a dobra, como um inteiro de 0 a 1." + +#: ../../c-api/datetime.rst:279 ../../c-api/datetime.rst:317 +msgid "Return the tzinfo (which may be ``None``)." +msgstr "Retorna o tzinfo (que pode ser ``None``)." + +#: ../../c-api/datetime.rst:284 +msgid "" +"Macros to extract fields from time objects. The argument must be an " +"instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " +"must not be ``NULL``, and the type is not checked:" +msgstr "" +"Macros 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:322 +msgid "" +"Macros to extract fields from time delta objects. The argument must be an " +"instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " +"must not be ``NULL``, and the type is not checked:" +msgstr "" +"Macros 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:328 +msgid "Return the number of days, as an int from -999999999 to 999999999." +msgstr "Retorna o número de dias, como um inteiro de -999999999 a 999999999." + +#: ../../c-api/datetime.rst:335 +msgid "Return the number of seconds, as an int from 0 through 86399." +msgstr "Retorna o número de segundos, como um inteiro de 0 a 86399." + +#: ../../c-api/datetime.rst:342 +msgid "Return the number of microseconds, as an int from 0 through 999999." +msgstr "Retorna o número de microssegundos, como um inteiro de 0 a 999999." + +#: ../../c-api/datetime.rst:347 +msgid "Macros for the convenience of modules implementing the DB API:" +msgstr "Macros para a conveniência de módulos implementando a API de DB:" + +#: ../../c-api/datetime.rst:351 +msgid "" +"Create and return a new :class:`datetime.datetime` object given an argument " +"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." +msgstr "" +"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:357 +msgid "" +"Create and return a new :class:`datetime.date` object given an argument " +"tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." +msgstr "" +"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`." + +#: ../../c-api/datetime.rst:362 +msgid "Internal data" +msgstr "Dados internos" + +#: ../../c-api/datetime.rst:364 +msgid "" +"The following symbols are exposed by the C API but should be considered " +"internal-only." +msgstr "" +"Os seguintes símbolos são expostos pela API C, mas devem ser considerados " +"apenas para uso interno." + +#: ../../c-api/datetime.rst:369 +msgid "Name of the datetime capsule to pass to :c:func:`PyCapsule_Import`." +msgstr "" +"Nome da cápsula de datetime a ser passada para :c:func:`PyCapsule_Import`." + +#: ../../c-api/datetime.rst:371 +msgid "Internal usage only. Use :c:macro:`PyDateTime_IMPORT` instead." +msgstr "Uso interno apenas. Use :c:macro:`PyDateTime_IMPORT` em vez disso." diff --git a/c-api/descriptor.po b/c-api/descriptor.po new file mode 100644 index 000000000..bc8e276fd --- /dev/null +++ b/c-api/descriptor.po @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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" + +#: ../../c-api/descriptor.rst:8 +msgid "" +"\"Descriptors\" are objects that describe some attribute of an object. They " +"are found in the dictionary of type objects." +msgstr "" +"\"Descritores\" são objetos que descrevem algum atributo de um objeto. Eles " +"são encontrados no dicionário de objetos de tipo." + +#: ../../c-api/descriptor.rst:15 +msgid "The type object for the built-in descriptor types." +msgstr "O tipo de objeto para os tipos de descritores embutidos." + +#: ../../c-api/descriptor.rst:26 +msgid "" +"The type object for member descriptor objects created from :c:type:" +"`PyMemberDef` structures. These descriptors expose fields of a C struct as " +"attributes on a type, and correspond to :class:`types.MemberDescriptorType` " +"objects in Python." +msgstr "" +"O objeto de tipo para descritores de membros criados a partir de estruturas :" +"c:type:`PyMemberDef`. Esses descritores expõem campos de uma estrutura C " +"como atributos de um tipo e correspondem a objetos :class:`types." +"MemberDescriptorType` em Python." + +#: ../../c-api/descriptor.rst:35 +msgid "" +"The type object for get/set descriptor objects created from :c:type:" +"`PyGetSetDef` structures. These descriptors implement attributes whose value " +"is computed by C getter and setter functions, and are used for many built-in " +"type attributes." +msgstr "" +"O objeto de tipo para descritores get/set criados a partir de estruturas :c:" +"type:`PyGetSetDef`. Esses descritores implementam atributos cujo valor é " +"calculado por funções getter e setter em C e são usados para muitos " +"atributos de tipo embutidos." + +#: ../../c-api/descriptor.rst:46 +msgid "" +"The type object for method descriptor objects created from :c:type:" +"`PyMethodDef` structures. These descriptors expose C functions as methods on " +"a type, and correspond to :class:`types.MemberDescriptorType` objects in " +"Python." +msgstr "" +"O objeto de tipo para descritores de métodos criados a partir de estruturas :" +"c:type:`PyMethodDef`. Esses descritores expõem funções C como métodos de um " +"tipo e correspondem a objetos :class:`types.MemberDescriptorType` em Python." + +#: ../../c-api/descriptor.rst:57 +msgid "" +"The type object for wrapper descriptor objects created by :c:func:" +"`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper descriptors are " +"used internally to expose special methods implemented via wrapper " +"structures, and appear in Python as :class:`types.WrapperDescriptorType` " +"objects." +msgstr "" +"O objeto de tipo para objetos descritores de encapsulamento criados por :c:" +"func:`PyDescr_NewWrapper` e :c:func:`PyWrapper_New`. Os descritores de " +"encapsulamento são usados internamente para expor métodos especiais " +"implementados por meio de estruturas de encapsulamento e aparecem em Python " +"como objetos :class:`types.WrapperDescriptorType`." + +#: ../../c-api/descriptor.rst:69 +msgid "" +"Return non-zero if the descriptor object *descr* describes a data attribute, " +"or ``0`` if it describes a method. *descr* must be a descriptor object; " +"there is no error checking." +msgstr "" +"Retorna não-zero se o objeto descritor *descr* descrevem um atributo de " +"dados, ou ``0`` se os mesmos descrevem um método. *descr* deve ser um objeto " +"descritor; não há verificação de erros." + +#: ../../c-api/descriptor.rst:78 +msgid "Built-in descriptors" +msgstr "Descritores embutidos" + +#: ../../c-api/descriptor.rst:82 +msgid "" +"The type object for super objects. This is the same object as :class:`super` " +"in the Python layer." +msgstr "" +"O objeto de tipo para superobjetos. Este é o mesmo objeto que :class:`super` " +"na camada Python." + +#: ../../c-api/descriptor.rst:88 +msgid "" +"The type of class method objects. This is the same object as :class:" +"`classmethod` in the Python layer." +msgstr "" +"O tipo de objeto de método de classe. Este é o mesmo objeto que :class:" +"`classmethod` na camada Python." + +#: ../../c-api/descriptor.rst:94 +msgid "" +"The type object for C-level class method descriptor objects. This is the " +"type of the descriptors created for :func:`classmethod` defined in C " +"extension types, and is the same object as :class:`classmethod` in Python." +msgstr "" +"O objeto de tipo para descritores de métodos de classe em nível C. Este é o " +"tipo dos descritores criados para :func:`classmethod` definidos em tipos de " +"extensão C, e é o mesmo objeto que :class:`classmethod` em Python." + +#: ../../c-api/descriptor.rst:102 +msgid "" +"Create a new :class:`classmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" +"Cria um novo objeto :class:`classmethod` que envolve *callable*. *callable* " +"deve ser um objeto chamável e não deve ser ``NULL``." + +#: ../../c-api/descriptor.rst:105 +msgid "" +"On success, this function returns a :term:`strong reference` to a new class " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` a um " +"novo descritor de método de classe. Em caso de falha, esta função retorna " +"``NULL`` com uma exceção definida." + +#: ../../c-api/descriptor.rst:112 +msgid "" +"The type of static method objects. This is the same object as :class:" +"`staticmethod` in the Python layer." +msgstr "" +"O tipo de objeto de método estático. Este é o mesmo objeto que :class:" +"`staticmethod` na camada Python." + +#: ../../c-api/descriptor.rst:118 +msgid "" +"Create a new :class:`staticmethod` object wrapping *callable*. *callable* " +"must be a callable object and must not be ``NULL``." +msgstr "" +"Cria um novo objeto :class:`staticmethod` que envolve *callable*. *callable* " +"deve ser um objeto chamável e não deve ser ``NULL``." + +#: ../../c-api/descriptor.rst:121 +msgid "" +"On success, this function returns a :term:`strong reference` to a new static " +"method descriptor. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` a um " +"novo descritor de método estático. Em caso de falha, esta função retorna " +"``NULL`` com uma exceção definida." diff --git a/c-api/dict.po b/c-api/dict.po new file mode 100644 index 000000000..4a2ac9024 --- /dev/null +++ b/c-api/dict.po @@ -0,0 +1,986 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/dict.rst:6 +msgid "Dictionary Objects" +msgstr "Objetos dicionários" + +#: ../../c-api/dict.rst:13 +msgid "" +"This subtype of :c:type:`PyObject` represents a Python dictionary object." +msgstr "" +"Este subtipo do :c:type:`PyObject` representa um objeto dicionário Python." + +#: ../../c-api/dict.rst:18 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python dictionary " +"type. This is the same object as :class:`dict` in the Python layer." +msgstr "" +"Esta instância do :c:type:`PyTypeObject` representa o tipo do dicionário " +"Python. Este é o mesmo objeto :class:`dict` na camada do Python." + +#: ../../c-api/dict.rst:24 +msgid "" +"Return true if *p* is a dict object or an instance of a subtype of the dict " +"type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *p* é um objeto dicionário ou uma instância de um " +"subtipo do tipo dicionário. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:30 +msgid "" +"Return true if *p* is a dict object, but not an instance of a subtype of the " +"dict type. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *p* é um objeto dicionário, mas não uma instância de " +"um subtipo do tipo dicionário. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:36 +msgid "Return a new empty dictionary, or ``NULL`` on failure." +msgstr "Retorna um novo dicionário vazio ou ``NULL`` em caso de falha." + +#: ../../c-api/dict.rst:41 +msgid "" +"Return a :class:`types.MappingProxyType` object for a mapping which enforces " +"read-only behavior. This is normally used to create a view to prevent " +"modification of the dictionary for non-dynamic class types." +msgstr "" +"Retorna um objeto :class:`types.MappingProxyType` para um mapeamento que " +"reforça o comportamento somente leitura. Isso normalmente é usado para criar " +"uma visão para evitar a modificação do dicionário para tipos de classes não " +"dinâmicas." + +#: ../../c-api/dict.rst:48 +msgid "" +"The type object for mapping proxy objects created by :c:func:" +"`PyDictProxy_New` and for the read-only ``__dict__`` attribute of many built-" +"in types. A :c:type:`PyDictProxy_Type` instance provides a dynamic, read-" +"only view of an underlying dictionary: changes to the underlying dictionary " +"are reflected in the proxy, but the proxy itself does not support mutation " +"operations. This corresponds to :class:`types.MappingProxyType` in Python." +msgstr "" +"O objeto de tipo para mapear objetos proxy criados por :c:func:" +"`PyDictProxy_New` e para o atributo somente leitura ``__dict__`` de muitos " +"tipos embutidos. Uma instância de :c:type:`PyDictProxy_Type` fornece uma " +"visão dinâmica e somente leitura de um dicionário subjacente: as alterações " +"no dicionário subjacente são refletidas no proxy, mas o próprio proxy não " +"oferece suporte a operações de mutação. Isso corresponde a :class:`types." +"MappingProxyType` no Python." + +#: ../../c-api/dict.rst:59 +msgid "Empty an existing dictionary of all key-value pairs." +msgstr "Esvazia um dicionário existente de todos os pares chave-valor." + +#: ../../c-api/dict.rst:64 +msgid "" +"Determine if dictionary *p* contains *key*. If an item in *p* matches " +"*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " +"is equivalent to the Python expression ``key in p``." +msgstr "" +"Determina se o dicionário *p* contém *key*. Se um item em *p* corresponder à " +"*key*, retorna ``1``, caso contrário, retorna ``0``. Em caso de erro, " +"retorna ``-1``. Isso equivale à expressão Python ``key in p``." + +#: ../../c-api/dict.rst:70 ../../c-api/dict.rst:97 ../../c-api/dict.rst:117 +#: ../../c-api/dict.rst:140 ../../c-api/dict.rst:257 ../../c-api/dict.rst:279 +msgid "" +"The operation is atomic on :term:`free threading ` when " +"*key* is :class:`str`, :class:`int`, :class:`float`, :class:`bool` or :class:" +"`bytes`." +msgstr "" + +#: ../../c-api/dict.rst:76 +msgid "" +"This is the same as :c:func:`PyDict_Contains`, but *key* is specified as a :" +"c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" +"É o mesmo que :c:func:`PyDict_Contains`, 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/dict.rst:85 +msgid "Return a new dictionary that contains the same key-value pairs as *p*." +msgstr "Retorna um novo dicionário que contém o mesmo chave-valor como *p*." + +#: ../../c-api/dict.rst:90 +msgid "" +"Insert *val* into the dictionary *p* with a key of *key*. *key* must be :" +"term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return ``0`` " +"on success or ``-1`` on failure. This function *does not* steal a reference " +"to *val*." +msgstr "" +"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:103 +msgid "" +"This is the same as :c:func:`PyDict_SetItem`, but *key* is specified as a :c:" +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" +"É 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*`." + +#: ../../c-api/dict.rst:110 +msgid "" +"Remove the entry in dictionary *p* with key *key*. *key* must be :term:" +"`hashable`; if it isn't, :exc:`TypeError` is raised. If *key* is not in the " +"dictionary, :exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on " +"failure." +msgstr "" +"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:123 +msgid "" +"This is the same as :c:func:`PyDict_DelItem`, but *key* is specified as a :c:" +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" +"É 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*`." + +#: ../../c-api/dict.rst:130 +msgid "" +"Return a new :term:`strong reference` to the object from dictionary *p* " +"which has a key *key*:" +msgstr "" +"Retorna uma nova :term:`referência forte` para o objeto dicionário *p* que " +"possui uma chave *key*:" + +#: ../../c-api/dict.rst:133 +msgid "" +"If the key is present, set *\\*result* to a new :term:`strong reference` to " +"the value and return ``1``." +msgstr "" +"Se a chave estiver presente, define *\\*result* como uma nova :term:" +"`referência forte` para o valor e retorna ``1``." + +#: ../../c-api/dict.rst:135 +msgid "If the key is missing, set *\\*result* to ``NULL`` and return ``0``." +msgstr "" +"Se a chave estiver ausente, define *\\*result* como ``NULL`` e retorna ``0``." + +#: ../../c-api/dict.rst:136 +msgid "" +"On error, raise an exception, set *\\*result* to ``NULL`` and return ``-1``." +msgstr "" + +#: ../../c-api/dict.rst:145 +msgid "See also the :c:func:`PyObject_GetItem` function." +msgstr "Veja também a função :c:func:`PyObject_GetItem`." + +#: ../../c-api/dict.rst:150 +msgid "" +"Return a :term:`borrowed reference` to the object from dictionary *p* which " +"has a key *key*. Return ``NULL`` if the key *key* is missing *without* " +"setting an exception." +msgstr "" +"Retorna um :term:`referência emprestada` para o objeto do dicionário *p* que " +"possui uma chave *key*. Retorna ``NULL`` se a chave *key* não estiver " +"presente, mas *sem* definir uma exceção." + +#: ../../c-api/dict.rst:156 +msgid "" +"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" +"`~object.__eq__` methods are silently ignored. Prefer the :c:func:" +"`PyDict_GetItemWithError` function instead." +msgstr "" +"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:162 ../../c-api/dict.rst:181 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_GetItemRef`, which returns a :term:`strong reference`." +msgstr "" + +#: ../../c-api/dict.rst:167 +msgid "" +"Calling this API without an :term:`attached thread state` had been allowed " +"for historical reason. It is no longer allowed." +msgstr "" +"Chamar esta API sem um :term:`estado de thread anexado` era permitido por " +"motivos históricos. Não é mais permitido." + +#: ../../c-api/dict.rst:174 +msgid "" +"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " +"Return ``NULL`` **with** an exception set if an exception occurred. Return " +"``NULL`` **without** an exception set if the key wasn't present." +msgstr "" +"Variante de :c:func:`PyDict_GetItem` que não suprime exceções. Retorna " +"``NULL`` **com** uma exceção definida se uma exceção ocorreu. Retorna " +"``NULL`` ** sem ** uma exceção definida se a chave não estiver presente." + +#: ../../c-api/dict.rst:189 +msgid "" +"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" +"É 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*`." + +#: ../../c-api/dict.rst:195 +msgid "" +"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" +"`~object.__eq__` methods or while creating the temporary :class:`str` object " +"are silently ignored. Prefer using the :c:func:`PyDict_GetItemWithError` " +"function with your own :c:func:`PyUnicode_FromString` *key* instead." +msgstr "" +"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:203 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_GetItemStringRef`, which returns a :term:`strong " +"reference`." +msgstr "" + +#: ../../c-api/dict.rst:211 +msgid "" +"Similar to :c:func:`PyDict_GetItemRef`, but *key* is specified as a :c:expr:" +"`const char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." +msgstr "" +"Similar a :c:func:`PyDict_GetItemRef`, 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/dict.rst:220 +msgid "" +"This is the same as the Python-level :meth:`dict.setdefault`. If present, " +"it returns the value corresponding to *key* from the dictionary *p*. If the " +"key is not in the dict, it is inserted with value *defaultobj* and " +"*defaultobj* is returned. This function evaluates the hash function of " +"*key* only once, instead of evaluating it independently for the lookup and " +"the insertion." +msgstr "" +"Isso é o mesmo que o :meth:`dict.setdefault` de nível Python. Se presente, " +"ele retorna o valor correspondente a *key* do dicionário *p*. Se a chave não " +"estiver no dict, ela será inserida com o valor *defaultobj* e *defaultobj* " +"será retornado. Esta função avalia a função hash de *key* apenas uma vez, em " +"vez de avaliá-la independentemente para a pesquisa e a inserção." + +#: ../../c-api/dict.rst:230 +msgid "" +"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " +"may become invalid if another thread modifies the dictionary concurrently. " +"Prefer :c:func:`PyDict_SetDefaultRef`, which returns a :term:`strong " +"reference`." +msgstr "" + +#: ../../c-api/dict.rst:239 +msgid "" +"Inserts *default_value* into the dictionary *p* with a key of *key* if the " +"key is not already present in the dictionary. If *result* is not ``NULL``, " +"then *\\*result* is set to a :term:`strong reference` to either " +"*default_value*, if the key was not present, or the existing value, if *key* " +"was already present in the dictionary. Returns ``1`` if the key was present " +"and *default_value* was not inserted, or ``0`` if the key was not present " +"and *default_value* was inserted. On failure, returns ``-1``, sets an " +"exception, and sets ``*result`` to ``NULL``." +msgstr "" +"Insere *default_value* no dicionário *p* com uma chave *key* se a chave " +"ainda não estiver presente no dicionário. Se *result* não for ``NULL``, " +"então *\\*result* é definido como uma :term:`referência forte` para " +"*default_value*, se a chave não estiver presente, ou para o valor existente, " +"se *key* já estava presente no dicionário. Retorna ``1`` se a chave estava " +"presente e *default_value* não foi inserido, ou ``0`` se a chave não estava " +"presente e *default_value* foi inserido. Em caso de falha, retorna ``-1``, " +"define uma exceção e define ``*result`` como ``NULL``." + +#: ../../c-api/dict.rst:249 +msgid "" +"For clarity: if you have a strong reference to *default_value* before " +"calling this function, then after it returns, you hold a strong reference to " +"both *default_value* and *\\*result* (if it's not ``NULL``). These may refer " +"to the same object: in that case you hold two separate references to it." +msgstr "" +"Para maior clareza: se você tiver uma referência forte para *default_value* " +"antes de chamar esta função, então depois que ela retornar, você terá uma " +"referência forte para *default_value* e *\\*result* (se não for ``NULL``). " +"Estes podem referir-se ao mesmo objeto: nesse caso você mantém duas " +"referências separadas para ele." + +#: ../../c-api/dict.rst:265 +msgid "" +"Remove *key* from dictionary *p* and optionally return the removed value. Do " +"not raise :exc:`KeyError` if the key is missing." +msgstr "" +"Remove *key* do dicionário *p* e, opcionalmente, retorna o valor removido. " +"Não levanta :exc:`KeyError` se a chave estiver ausente." + +#: ../../c-api/dict.rst:268 +msgid "" +"If the key is present, set *\\*result* to a new reference to the removed " +"value if *result* is not ``NULL``, and return ``1``." +msgstr "" +"Se a chave estiver presente, define *\\*result* como uma nova referência " +"para o valor se *result* não for ``NULL`` e retorna ``1``." + +#: ../../c-api/dict.rst:270 +msgid "" +"If the key is missing, set *\\*result* to ``NULL`` if *result* is not " +"``NULL``, and return ``0``." +msgstr "" +"Se a chave estiver ausente, define *\\*result* como ``NULL`` se *result* não " +"for ``NULL`` e retorna ``0``." + +#: ../../c-api/dict.rst:272 +msgid "On error, raise an exception and return ``-1``." +msgstr "Em caso de erro, levanta uma exceção e retorna ``-1``." + +#: ../../c-api/dict.rst:274 +msgid "" +"Similar to :meth:`dict.pop`, but without the default value and not raising :" +"exc:`KeyError` if the key is missing." +msgstr "" +"Similar a :meth:`dict.pop`, mas sem o valor padrão e sem levantar :exc:" +"`KeyError` se a chave estiver ausente." + +#: ../../c-api/dict.rst:287 +msgid "" +"Similar to :c:func:`PyDict_Pop`, but *key* is specified as a :c:expr:`const " +"char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." +msgstr "" +"Similar a :c:func:`PyDict_Pop`, 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/dict.rst:296 +msgid "" +"Return a :c:type:`PyListObject` containing all the items from the dictionary." +msgstr "" +"Retorna um :c:type:`PyListObject` contendo todos os itens do dicionário." + +#: ../../c-api/dict.rst:301 +msgid "" +"Return a :c:type:`PyListObject` containing all the keys from the dictionary." +msgstr "" +"Retorna um :c:type:`PyListObject` contendo todas as chaves do dicionário." + +#: ../../c-api/dict.rst:306 +msgid "" +"Return a :c:type:`PyListObject` containing all the values from the " +"dictionary *p*." +msgstr "" +"Retorna um :c:type:`PyListObject` contendo todos os valores do dicionário " +"*p*." + +#: ../../c-api/dict.rst:314 +msgid "" +"Return the number of items in the dictionary. This is equivalent to " +"``len(p)`` on a dictionary." +msgstr "" +"Retorna o número de itens no dicionário. Isso é equivalente a ``len(p)`` em " +"um dicionário." + +#: ../../c-api/dict.rst:320 +msgid "Similar to :c:func:`PyDict_Size`, but without error checking." +msgstr "Similar a :c:func:`PyDict_Size`, mas sem verificação de erro." + +#: ../../c-api/dict.rst:325 +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, " +"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 " +"e, como a estrutura é esparsa, os deslocamentos não são consecutivos." + +#: ../../c-api/dict.rst:336 +msgid "For example::" +msgstr "Por exemplo::" + +#: ../../c-api/dict.rst:338 +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:346 +msgid "" +"The dictionary *p* should not be mutated during iteration. It is safe to " +"modify the values of the keys as you iterate over the dictionary, but only " +"so long as the set of keys does not change. For example::" +msgstr "" +"O dicionário *p* não deve sofrer mutação durante a iteração. É seguro " +"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:350 +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:368 +msgid "" +"The function is not thread-safe in the :term:`free-threaded ` build without external synchronization. You can use :c:macro:" +"`Py_BEGIN_CRITICAL_SECTION` to lock the dictionary while iterating over it::" +msgstr "" +"A função não é segura para thread na construção com :term:`threads livres " +"` sem sincronização externa. Você pode usar :c:macro:" +"`Py_BEGIN_CRITICAL_SECTION` para travar o dicionário enquanto itera sobre " +"ele::" + +#: ../../c-api/dict.rst:373 +msgid "" +"Py_BEGIN_CRITICAL_SECTION(self->dict);\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" ...\n" +"}\n" +"Py_END_CRITICAL_SECTION();" +msgstr "" +"Py_BEGIN_CRITICAL_SECTION(self->dict);\n" +"while (PyDict_Next(self->dict, &pos, &key, &value)) {\n" +" ...\n" +"}\n" +"Py_END_CRITICAL_SECTION();" + +#: ../../c-api/dict.rst:381 +msgid "" +"On the free-threaded build, this function can be used safely inside a " +"critical section. However, the references returned for *pkey* and *pvalue* " +"are :term:`borrowed ` and are only valid while the " +"critical section is held. If you need to use these objects outside the " +"critical section or when the critical section can be suspended, create a :" +"term:`strong reference ` (for example, using :c:func:" +"`Py_NewRef`)." +msgstr "" +"Na construção com threads livres, esta função pode ser usada com segurança " +"dentro de uma seção crítica. No entanto, as referências retornadas para " +"*pkey* e *pvalue* são :term:`emprestadas ` e só são " +"válidas enquanto a seção crítica é mantida. Se precisar usar esses objetos " +"fora da seção crítica ou quando a seção crítica puder ser suspensa, crie " +"uma :term:`referência forte ` (por exemplo, usando :c:func:" +"`Py_NewRef`)." + +#: ../../c-api/dict.rst:391 +msgid "" +"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " +"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " +"and :c:func:`PyObject_GetItem`. If *override* is true, existing pairs in *a* " +"will be replaced if a matching key is found in *b*, otherwise pairs will " +"only be added if there is not a matching key in *a*. Return ``0`` on success " +"or ``-1`` if an exception was raised." +msgstr "" +"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 " +"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:400 ../../c-api/dict.rst:416 +msgid "" +"In the :term:`free-threaded build`, when *b* is a :class:`dict` (with the " +"standard iterator), both *a* and *b* are locked for the duration of the " +"operation. When *b* is a non-dict mapping, only *a* is locked; *b* may be " +"concurrently modified by another thread." +msgstr "" + +#: ../../c-api/dict.rst:408 +msgid "" +"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." +"update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " +"to the iterating over a sequence of key value pairs if the second argument " +"has no \"keys\" attribute. Return ``0`` on success or ``-1`` if an " +"exception was raised." +msgstr "" +"É 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." + +#: ../../c-api/dict.rst:424 +msgid "" +"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " +"*seq2* must be an iterable object producing iterable objects of length 2, " +"viewed as key-value pairs. In case of duplicate keys, the last wins if " +"*override* is true, else the first wins. Return ``0`` on success or ``-1`` " +"if an exception was raised. Equivalent Python (except for the return value)::" +msgstr "" +"Atualiza ou mescla no dicionário *a*, a partir dos pares de chave-valor em " +"*seq2*. *seq2* deve ser um objeto iterável produzindo objetos iteráveis de " +"comprimento 2, vistos como pares chave-valor. No caso de chaves duplicadas, " +"a última vence se *override* for verdadeiro, caso contrário, a primeira " +"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:431 +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:438 +msgid "" +"In the :term:`free-threaded ` build, only *a* is locked. The " +"iteration over *seq2* is not synchronized; *seq2* may be concurrently " +"modified by another thread." +msgstr "" + +#: ../../c-api/dict.rst:445 +msgid "" +"Register *callback* as a dictionary watcher. Return a non-negative integer " +"id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" +"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." + +#: ../../c-api/dict.rst:452 ../../c-api/dict.rst:467 +msgid "" +"This function is not internally synchronized. In the :term:`free-threaded " +"` build, callers should ensure no concurrent calls to :c:" +"func:`PyDict_AddWatcher` or :c:func:`PyDict_ClearWatcher` are in progress." +msgstr "" + +#: ../../c-api/dict.rst:461 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error (e.g. if the " +"given *watcher_id* was never registered.)" +msgstr "" +"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:476 +msgid "" +"Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:" +"func:`PyDict_AddWatcher` will be called when *dict* is modified or " +"deallocated. Return ``0`` on success or ``-1`` on error." +msgstr "" +"Marca o dicionário *dict* como observado. A função de retorno concedida a " +"*watcher_id* por :c:func:`PyDict_AddWatcher` será chamada quando *dict* for " +"modificado ou desalocado. Retorna ``0`` em caso de sucesso ou ``-1`` em caso " +"de erro." + +#: ../../c-api/dict.rst:484 +msgid "" +"Mark dictionary *dict* as no longer watched. The callback granted " +"*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " +"*dict* is modified or deallocated. The dict must previously have been " +"watched by this watcher. Return ``0`` on success or ``-1`` on error." +msgstr "" +"Marca o dicionário *dict* como não mais observado. A função de retorno " +"concedida a *watcher_id* por :c:func:`PyDict_AddWatcher` será chamada quando " +"*dict* for modificado ou desalocado. O dicionário deve ter sido observado " +"anteriormente por este observador. Retorna ``0`` em caso de sucesso ou " +"``-1`` em caso de erro." + +#: ../../c-api/dict.rst:493 +msgid "" +"Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " +"``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " +"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or " +"``PyDict_EVENT_DEALLOCATED``." +msgstr "" +"Enumeração de possíveis eventos de observador de dicionário: " +"``PyDict_EVENT_ADDED``, ``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " +"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED`` ou " +"``PyDict_EVENT_DEALLOCATED``." + +#: ../../c-api/dict.rst:501 +msgid "Type of a dict watcher callback function." +msgstr "Tipo de uma função de retorno de chamada de observador de dicionário." + +#: ../../c-api/dict.rst:503 +msgid "" +"If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " +"*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " +"or ``PyDict_EVENT_MODIFIED``, *new_value* will be the new value for *key*. " +"If *event* is ``PyDict_EVENT_DELETED``, *key* is being deleted from the " +"dictionary and *new_value* will be ``NULL``." +msgstr "" +"Se *event* for ``PyDict_EVENT_CLEARED`` ou ``PyDict_EVENT_DEALLOCATED``, " +"tanto *key* quanto *new_value* serão ``NULL``. Se *event* for " +"``PyDict_EVENT_ADDED`` ou ``PyDict_EVENT_MODIFIED``, *new_value* será o novo " +"valor de *key*. Se *event* for ``PyDict_EVENT_DELETED``, *key* estará sendo " +"excluída do dicionário e *new_value* será ``NULL``." + +#: ../../c-api/dict.rst:509 +msgid "" +"``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " +"dict is merged into it. To maintain efficiency of this operation, per-key " +"``PyDict_EVENT_ADDED`` events are not issued in this case; instead a single " +"``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." +msgstr "" +"``PyDict_EVENT_CLONED`` ocorre quando *dict* estava anteriormente vazio e " +"outro dict é mesclado a ele. Para manter a eficiência dessa operação, os " +"eventos ``PyDict_EVENT_ADDED`` por chave não são emitidos nesse caso; em vez " +"disso, um único ``PyDict_EVENT_CLONED`` é emitido e *key* será o dicionário " +"de origem." + +#: ../../c-api/dict.rst:515 +msgid "" +"The callback may inspect but must not modify *dict*; doing so could have " +"unpredictable effects, including infinite recursion. Do not trigger Python " +"code execution in the callback, as it could modify the dict as a side effect." +msgstr "" +"A função de retorno pode inspecionar, mas não deve modificar o *dict*; isso " +"pode ter efeitos imprevisíveis, inclusive recursão infinita. Não acione a " +"execução do código Python na função de retorno, pois isso poderia modificar " +"o dict como um efeito colateral." + +#: ../../c-api/dict.rst:519 +msgid "" +"If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " +"callback to the about-to-be-destroyed dictionary will resurrect it and " +"prevent it from being freed at this time. When the resurrected object is " +"destroyed later, any watcher callbacks active at that time will be called " +"again." +msgstr "" +"Se *event* for ``PyDict_EVENT_DEALLOCATED``, a obtenção de uma nova " +"referência na função de retorno para o dicionário prestes a ser destruído o " +"ressuscitará e impedirá que ele seja liberado nesse momento. Quando o objeto " +"ressuscitado for destruído mais tarde, quaisquer funções de retorno do " +"observador ativos naquele momento serão chamados novamente." + +#: ../../c-api/dict.rst:525 +msgid "" +"Callbacks occur before the notified modification to *dict* takes place, so " +"the prior state of *dict* can be inspected." +msgstr "" +"As funções de retorno ocorrem antes que a modificação notificada no *dict* " +"ocorra, de modo que o estado anterior do *dict* possa ser inspecionado." + +#: ../../c-api/dict.rst:528 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" +"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:532 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" +"É 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 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/dict.rst:542 +msgid "Dictionary View Objects" +msgstr "Objetos visão de dicionário" + +#: ../../c-api/dict.rst:546 +msgid "" +"Return true if *op* is a view of a set inside a dictionary. This is " +"currently equivalent to :c:expr:`PyDictKeys_Check(op) || " +"PyDictItems_Check(op)`. This function always succeeds." +msgstr "" +"Retorna verdadeiro se *op* for uma visão de um conjunto dentro de um " +"dicionário. Isso atualmente equivale a :c:expr:`PyDictKeys_Check(op) || " +"PyDictItems_Check(op)`. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:553 +msgid "" +"Type object for a view of dictionary keys. In Python, this is the type of " +"the object returned by :meth:`dict.keys`." +msgstr "" +"Objeto tipo para uma visualização das chaves do dicionário. Em Python, este " +"é o tipo do objeto retornado por :meth:`dict.keys`." + +#: ../../c-api/dict.rst:559 +msgid "" +"Return true if *op* is an instance of a dictionary keys view. This function " +"always succeeds." +msgstr "" +"Retorna verdadeiro se *op* for uma instância de uma visualização de chaves " +"de dicionário. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:565 +msgid "" +"Type object for a view of dictionary values. In Python, this is the type of " +"the object returned by :meth:`dict.values`." +msgstr "" +"Objeto tipo para uma visualização dos valores do dicionário. Em Python, este " +"é o tipo do objeto retornado por :meth:`dict.values`." + +#: ../../c-api/dict.rst:571 +msgid "" +"Return true if *op* is an instance of a dictionary values view. This " +"function always succeeds." +msgstr "" +"Retorna verdadeiro se *op* for uma instância de uma visualização de valores " +"de dicionário. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:577 +msgid "" +"Type object for a view of dictionary items. In Python, this is the type of " +"the object returned by :meth:`dict.items`." +msgstr "" +"Objeto tipo para uma visualização de itens de dicionário. Em Python, este é " +"o tipo do objeto retornado por :meth:`dict.items`." + +#: ../../c-api/dict.rst:583 +msgid "" +"Return true if *op* is an instance of a dictionary items view. This function " +"always succeeds." +msgstr "" +"Retorna verdadeiro se *op* for uma instância de uma visualização de itens de " +"dicionário. Esta função sempre tem sucesso." + +#: ../../c-api/dict.rst:588 +msgid "Ordered Dictionaries" +msgstr "Dicionários ordenados" + +#: ../../c-api/dict.rst:590 +msgid "" +"Python's C API provides interface for :class:`collections.OrderedDict` from " +"C. Since Python 3.7, dictionaries are ordered by default, so there is " +"usually little need for these functions; prefer ``PyDict*`` where possible." +msgstr "" +"A API C do Python fornece uma interface para :class:`collections." +"OrderedDict` do C. Desde o Python 3.7, os dicionários são ordenados por " +"padrão, então geralmente há pouca necessidade dessas funções; prefira " +"``PyDict*`` sempre que possível." + +#: ../../c-api/dict.rst:597 +msgid "" +"Type object for ordered dictionaries. This is the same object as :class:" +"`collections.OrderedDict` in the Python layer." +msgstr "" +"Objeto de tipo para dicionários ordenados. Este é o mesmo objeto que :class:" +"`collections.OrderedDict` na camada Python." + +#: ../../c-api/dict.rst:603 +msgid "" +"Return true if *od* is an ordered dictionary object or an instance of a " +"subtype of the :class:`~collections.OrderedDict` type. This function always " +"succeeds." +msgstr "" +"Retorna verdadeiro se *od* for um objeto de dicionário ordenado ou uma " +"instância de um subtipo do tipo :class:`~collections.OrderedDict`. Esta " +"função sempre tem sucesso.." + +#: ../../c-api/dict.rst:610 +msgid "" +"Return true if *od* is an ordered dictionary object, but not an instance of " +"a subtype of the :class:`~collections.OrderedDict` type. This function " +"always succeeds." +msgstr "" +"Retorna verdadeiro se *od* for um objeto de dicionário ordenado, mas não uma " +"instância de um subtipo do tipo :class:`~collections.OrderedDict`. Esta " +"função sempre tem sucesso." + +#: ../../c-api/dict.rst:617 +msgid "Analogous to :c:type:`PyDictKeys_Type` for ordered dictionaries." +msgstr "Análogo a :c:type:`PyDictKeys_Type` para dicionários ordenados." + +#: ../../c-api/dict.rst:622 +msgid "Analogous to :c:type:`PyDictValues_Type` for ordered dictionaries." +msgstr "Análogo a :c:type:`PyDictValues_Type` para dicionários ordenados." + +#: ../../c-api/dict.rst:627 +msgid "Analogous to :c:type:`PyDictItems_Type` for ordered dictionaries." +msgstr "Análogo a :c:type:`PyDictItems_Type` para dicionários ordenados." + +#: ../../c-api/dict.rst:632 +msgid "Return a new empty ordered dictionary, or ``NULL`` on failure." +msgstr "" +"Retorna um novo dicionário ordenado vazio ou ``NULL`` em caso de falha." + +#: ../../c-api/dict.rst:634 +msgid "This is analogous to :c:func:`PyDict_New`." +msgstr "Isso é análogo a :c:func:`PyDict_New`." + +#: ../../c-api/dict.rst:639 +msgid "" +"Insert *value* into the ordered dictionary *od* with a key of *key*. Return " +"``0`` on success or ``-1`` with an exception set on failure." +msgstr "" +"Insere o valor *value* no dicionário ordenado *od* com a chave de *key*. " +"Retorna ``0`` em caso de sucesso ou ``-1`` com uma exceção definida em caso " +"de falha." + +#: ../../c-api/dict.rst:642 +msgid "This is analogous to :c:func:`PyDict_SetItem`." +msgstr "Isso é análogo a :c:func:`PyDict_SetItem`." + +#: ../../c-api/dict.rst:647 +msgid "" +"Remove the entry in the ordered dictionary *od* with key *key*. Return ``0`` " +"on success or ``-1`` with an exception set on failure." +msgstr "" +"Remove a entrada do dicionário ordenado *od* com a chave *key*. Retorna " +"``0`` em caso de sucesso ou ``-1`` com uma exceção definida em caso de falha." + +#: ../../c-api/dict.rst:650 +msgid "This is analogous to :c:func:`PyDict_DelItem`." +msgstr "Isso é análogo a :c:func:`PyDict_DelItem`." + +#: ../../c-api/dict.rst:653 +msgid "These are :term:`soft deprecated` aliases to ``PyDict`` APIs:" +msgstr "" +"Estes são apelidos :term:`suavemente descontinuados ` a APIs de ``PyDict``:" + +#: ../../c-api/dict.rst:660 +msgid "``PyODict``" +msgstr "``PyODict``" + +#: ../../c-api/dict.rst:661 +msgid "``PyDict``" +msgstr "``PyDict``" + +#: ../../c-api/dict.rst:663 +msgid ":c:func:`PyDict_GetItem`" +msgstr ":c:func:`PyDict_GetItem`" + +#: ../../c-api/dict.rst:665 +msgid ":c:func:`PyDict_GetItemWithError`" +msgstr ":c:func:`PyDict_GetItemWithError`" + +#: ../../c-api/dict.rst:667 +msgid ":c:func:`PyDict_GetItemString`" +msgstr ":c:func:`PyDict_GetItemString`" + +#: ../../c-api/dict.rst:669 +msgid ":c:func:`PyDict_Contains`" +msgstr ":c:func:`PyDict_Contains`" + +#: ../../c-api/dict.rst:671 +msgid ":c:func:`PyDict_Size`" +msgstr ":c:func:`PyDict_Size`" + +#: ../../c-api/dict.rst:673 +msgid ":c:func:`PyDict_GET_SIZE`" +msgstr ":c:func:`PyDict_GET_SIZE`" + +#: ../../c-api/dict.rst:8 +msgid "object" +msgstr "objeto" + +#: ../../c-api/dict.rst:8 +msgid "dictionary" +msgstr "dicionário" + +#: ../../c-api/dict.rst:312 +msgid "built-in function" +msgstr "função embutida" + +#: ../../c-api/dict.rst:312 +msgid "len" +msgstr "len" diff --git a/c-api/exceptions.po b/c-api/exceptions.po new file mode 100644 index 000000000..5d6c5c136 --- /dev/null +++ b/c-api/exceptions.po @@ -0,0 +1,1846 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-06-03 19:20+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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 "Tratamento de exceções" + +#: ../../c-api/exceptions.rst:10 +msgid "" +"The functions described in this chapter will let you handle and raise Python " +"exceptions. It is important to understand some of the basics of Python " +"exception handling. It works somewhat like the POSIX :c:data:`errno` " +"variable: there is a global indicator (per thread) of the last error that " +"occurred. Most C API functions don't clear this on success, but will set it " +"to indicate the cause of the error on failure. Most C API functions also " +"return an error indicator, usually ``NULL`` if they are supposed to return a " +"pointer, or ``-1`` if they return an integer (exception: the ``PyArg_*`` " +"functions return ``1`` for success and ``0`` for failure)." +msgstr "" +"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çõ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 "" +"Concretely, the error indicator consists of three object pointers: the " +"exception's type, the exception's value, and the traceback object. Any of " +"those pointers can be ``NULL`` if non-set (although some combinations are " +"forbidden, for example you can't have a non-``NULL`` traceback if the " +"exception type is ``NULL``)." +msgstr "" +"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``)." + +#: ../../c-api/exceptions.rst:26 +msgid "" +"When a function must fail because some function it called failed, it " +"generally doesn't set the error indicator; the function it called already " +"set it. It is responsible for either handling the error and clearing the " +"exception or returning after cleaning up any resources it holds (such as " +"object references or memory allocations); it should *not* continue normally " +"if it is not prepared to handle the error. If returning due to an error, it " +"is important to indicate to the caller that an error has been set. If the " +"error is not handled or carefully propagated, additional calls into the " +"Python/C API may not behave as intended and may fail in mysterious ways." +msgstr "" +"Quando uma função deve falhar porque devido à falha de alguma função que ela " +"chamou, ela geralmente não define o indicador de erro; a função que ela " +"chamou já o definiu. Ela é responsável por manipular o erro e limpar a " +"exceção ou retornar após limpar todos os recursos que possui (como " +"referências a objetos ou alocações de memória); ela *não* deve continuar " +"normalmente se não estiver preparada para lidar com o erro. Se estiver " +"retornando devido a um erro, é importante indicar ao chamador que um erro " +"foi definido. Se o erro não for manipulado ou propagado com cuidado, " +"chamadas adicionais para a API Python/C podem não se comportar conforme o " +"esperado e podem falhar de maneiras misteriosas." + +#: ../../c-api/exceptions.rst:37 +msgid "" +"The error indicator is **not** the result of :func:`sys.exc_info`. The " +"former corresponds to an exception that is not yet caught (and is therefore " +"still propagating), while the latter returns an exception after it is caught " +"(and has therefore stopped propagating)." +msgstr "" +"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 +msgid "Printing and clearing" +msgstr "Impressão e limpeza" + +#: ../../c-api/exceptions.rst:49 +msgid "" +"Clear the error indicator. If the error indicator is not set, there is no " +"effect." +msgstr "" +"Limpe o indicador de erro. Se o indicador de erro não estiver definido, não " +"haverá efeito." + +#: ../../c-api/exceptions.rst:55 +msgid "" +"Print a standard traceback to ``sys.stderr`` and clear the error indicator. " +"**Unless** the error is a ``SystemExit``, in that case no traceback is " +"printed and the Python process will exit with the error code specified by " +"the ``SystemExit`` instance." +msgstr "" +"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 "" +"Call this function **only** when the error indicator is set. Otherwise it " +"will cause a fatal error!" +msgstr "" +"Chame esta função **apenas** quando o indicador de erro estiver definido. " +"Caso contrário, causará um erro fatal!" + +#: ../../c-api/exceptions.rst:63 +msgid "" +"If *set_sys_last_vars* is nonzero, the variable :data:`sys.last_exc` is set " +"to the printed exception. For backwards compatibility, the deprecated " +"variables :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys." +"last_traceback` are also set to the type, value and traceback of this " +"exception, respectively." +msgstr "" +"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 "A configuração de :data:`sys.last_exc` foi adicionada." + +#: ../../c-api/exceptions.rst:75 +msgid "Alias for ``PyErr_PrintEx(1)``." +msgstr "Apelido para ``PyErr_PrintEx(1)``." + +#: ../../c-api/exceptions.rst:80 +msgid "" +"Call :func:`sys.unraisablehook` using the current exception and *obj* " +"argument." +msgstr "" +"Chama :func:`sys.unraisablehook` usando a exceção atual e o argumento *obj*." + +#: ../../c-api/exceptions.rst:83 +msgid "" +"This utility function prints a warning message to ``sys.stderr`` when an " +"exception has been set but it is impossible for the interpreter to actually " +"raise the exception. It is used, for example, when an exception occurs in " +"an :meth:`~object.__del__` method." +msgstr "" +"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 "" +"The function is called with a single argument *obj* that identifies the " +"context in which the unraisable exception occurred. If possible, the repr of " +"*obj* will be printed in the warning message. If *obj* is ``NULL``, only the " +"traceback is printed." +msgstr "" +"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." +msgstr "Uma exceção deve ser definida ao chamar essa função." + +#: ../../c-api/exceptions.rst:95 +msgid "Print a traceback. Print only traceback if *obj* is ``NULL``." +msgstr "" +"Exibe o traceback (situação da pilha de execução). Exibe apenas o traceback " +"se *obj* for ``NULL``." + +#: ../../c-api/exceptions.rst:98 +msgid "Use :func:`sys.unraisablehook`." +msgstr "Utiliza :func:`sys.unraisablehook`." + +#: ../../c-api/exceptions.rst:104 +msgid "" +"Similar to :c:func:`PyErr_WriteUnraisable`, but the *format* and subsequent " +"parameters help format the warning message; they have the same meaning and " +"values as in :c:func:`PyUnicode_FromFormat`. ``PyErr_WriteUnraisable(obj)`` " +"is roughly equivalent to ``PyErr_FormatUnraisable(\"Exception ignored in: " +"%R\", obj)``. If *format* is ``NULL``, only the traceback is printed." +msgstr "" +"Similar a :c:func:`PyErr_WriteUnraisable`, mas *format* e parâmetros " +"subsequentes ajudam a formatar a mensagem de aviso; eles têm o mesmo " +"significado e valores que em :c:func:`PyUnicode_FromFormat`. " +"``PyErr_WriteUnraisable(obj)`` é aproximadamente equivalente à " +"``PyErr_FormatUnraisable(\"Exception ignored in: %R\", obj)``. Se *format* é " +"``NULL``, somente o rastreamento é impresso." + +#: ../../c-api/exceptions.rst:116 +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:123 +msgid "Raising exceptions" +msgstr "Levantando exceções" + +#: ../../c-api/exceptions.rst:125 +msgid "" +"These functions help you set the current thread's error indicator. For " +"convenience, some of these functions will always return a ``NULL`` pointer " +"for use in a ``return`` statement." +msgstr "" +"Essas funções ajudam a definir o indicador de erro do thread. Por " +"conveniência, algumas dessas funções sempre retornam um ponteiro ``NULL`` ao " +"usar instrução com ``return``." + +#: ../../c-api/exceptions.rst:132 +msgid "" +"This is the most common way to set the error indicator. The first argument " +"specifies the exception type; it is normally one of the standard exceptions, " +"e.g. :c:data:`PyExc_RuntimeError`. You need not create a new :term:`strong " +"reference` to it (e.g. with :c:func:`Py_INCREF`). The second argument is an " +"error message; it is decoded from ``'utf-8'``." +msgstr "" +"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:141 +msgid "" +"This function is similar to :c:func:`PyErr_SetString` but lets you specify " +"an arbitrary Python object for the \"value\" of the exception." +msgstr "" +"Essa função é semelhante à :c:func:`PyErr_SetString` mas permite especificar " +"um objeto Python arbitrário para o valor da exceção." + +#: ../../c-api/exceptions.rst:147 +msgid "" +"This function sets the error indicator and returns ``NULL``. *exception* " +"should be a Python exception class. The *format* and subsequent parameters " +"help format the error message; they have the same meaning and values as in :" +"c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." +msgstr "" +"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:156 +msgid "" +"Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " +"rather than a variable number of arguments." +msgstr "" +"Igual a :c:func:`PyErr_Format`, mas usando o argumento :c:type:`va_list` em " +"vez de um número variável de argumentos." + +#: ../../c-api/exceptions.rst:164 +msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." +msgstr "Isso é uma abreviação para ``PyErr_SetObject(type, Py_None)``." + +#: ../../c-api/exceptions.rst:169 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " +"*message* indicates that a built-in operation was invoked with an illegal " +"argument. It is mostly for internal use." +msgstr "" +"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:176 +msgid "" +"This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " +"``NULL`` so an object allocation function can write ``return " +"PyErr_NoMemory();`` when it runs out of memory." +msgstr "" +"Essa é uma abreviação para ``PyErr_SetNone(PyExc_MemoryError)``; que retorna " +"``NULL``  para que uma função de alocação de objeto possa escrever ``return " +"PyErr_NoMemory();``  quando ficar sem memória." + +#: ../../c-api/exceptions.rst:185 +msgid "" +"This is a convenience function to raise an exception when a C library " +"function has returned an error and set the C variable :c:data:`errno`. It " +"constructs a tuple object whose first item is the integer :c:data:`errno` " +"value and whose second item is the corresponding error message (gotten from :" +"c:func:`!strerror`), and then calls ``PyErr_SetObject(type, object)``. On " +"Unix, when the :c:data:`errno` value is :c:macro:`!EINTR`, indicating an " +"interrupted system call, this calls :c:func:`PyErr_CheckSignals`, and if " +"that set the error indicator, leaves it set to that. The function always " +"returns ``NULL``, so a wrapper function around a system call can write " +"``return PyErr_SetFromErrno(type);`` when the system call returns an error." +msgstr "" +"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:199 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " +"if *filenameObject* is not ``NULL``, it is passed to the constructor of " +"*type* as a third parameter. In the case of :exc:`OSError` exception, this " +"is used to define the :attr:`!filename` attribute of the exception instance." +msgstr "" +"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:208 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " +"second filename object, for raising errors when a function that takes two " +"filenames fails." +msgstr "" +"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:217 +msgid "" +"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " +"is given as a C string. *filename* is decoded from the :term:`filesystem " +"encoding and error handler`." +msgstr "" +"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:224 +msgid "" +"This is a convenience function to raise :exc:`OSError`. If called with " +"*ierr* of ``0``, the error code returned by a call to :c:func:`!" +"GetLastError` is used instead. It calls the Win32 function :c:func:`!" +"FormatMessage` to retrieve the Windows description of error code given by " +"*ierr* or :c:func:`!GetLastError`, then it constructs a :exc:`OSError` " +"object with the :attr:`~OSError.winerror` attribute set to the error code, " +"the :attr:`~OSError.strerror` attribute set to the corresponding error " +"message (gotten from :c:func:`!FormatMessage`), and then calls " +"``PyErr_SetObject(PyExc_OSError, object)``. This function always returns " +"``NULL``." +msgstr "" +"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:234 ../../c-api/exceptions.rst:242 +#: ../../c-api/exceptions.rst:253 ../../c-api/exceptions.rst:263 +#: ../../c-api/exceptions.rst:271 ../../c-api/exceptions.rst:281 +msgid "Availability" +msgstr "Disponibilidade" + +#: ../../c-api/exceptions.rst:239 +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:247 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErr`, with the additional behavior " +"that if *filename* is not ``NULL``, it is decoded from the filesystem " +"encoding (:func:`os.fsdecode`) and passed to the constructor of :exc:" +"`OSError` as a third parameter to be used to define the :attr:`!filename` " +"attribute of the exception instance." +msgstr "" +"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:258 +msgid "" +"Similar to :c:func:`PyErr_SetExcFromWindowsErr`, with the additional " +"behavior that if *filename* is not ``NULL``, it is passed to the constructor " +"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" +"filename` attribute of the exception instance." +msgstr "" +"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:268 +msgid "" +"Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " +"accepts a second filename object." +msgstr "" +"Similar à :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, mas aceita " +"um segundo caminho do objeto." + +#: ../../c-api/exceptions.rst:278 +msgid "" +"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " +"parameter specifying the exception type to be raised." +msgstr "" +"Similar à :c:func:`PyErr_SetFromWindowsErrWithFilename`, com um parâmetro " +"adicional especificando o tipo de exceção a ser gerado." + +#: ../../c-api/exceptions.rst:286 +msgid "" +"This is a convenience function to raise :exc:`ImportError`. *msg* will be " +"set as the exception's message string. *name* and *path*, both of which can " +"be ``NULL``, will be set as the :exc:`ImportError`'s respective ``name`` and " +"``path`` attributes." +msgstr "" +"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:296 +msgid "" +"Much like :c:func:`PyErr_SetImportError` but this function allows for " +"specifying a subclass of :exc:`ImportError` to raise." +msgstr "" +"Muito parecido com :c:func:`PyErr_SetImportError` mas a função permite " +"especificar uma subclasse de :exc:`ImportError` para levantar uma exceção." + +#: ../../c-api/exceptions.rst:304 +msgid "" +"Set file, line, and offset information for the current exception. If the " +"current exception is not a :exc:`SyntaxError`, then it sets additional " +"attributes, which make the exception printing subsystem think the exception " +"is a :exc:`SyntaxError`." +msgstr "" +"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:314 +msgid "" +"Similar to :c:func:`PyErr_SyntaxLocationObject`, but also sets the " +"*end_lineno* and *end_col_offset* information for the current exception." +msgstr "" +"Similar a :c:func:`PyErr_SyntaxLocationObject`, mas também define as " +"informações *end_lineno* e *end_col_offset* para a exceção atual." + +#: ../../c-api/exceptions.rst:322 +msgid "" +"Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " +"decoded from the :term:`filesystem encoding and error handler`." +msgstr "" +"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:330 +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:336 +msgid "" +"This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " +"where *message* indicates that an internal operation (e.g. a Python/C API " +"function) was invoked with an illegal argument. It is mostly for internal " +"use." +msgstr "" +"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:344 +msgid "" +"Get the source line in *filename* at line *lineno*. *filename* should be a " +"Python :class:`str` object." +msgstr "" +"Obtém a linha de código-fonte em *filename* na linha *lineno*. *filename* " +"deve ser um objeto :class:`str` Python." + +#: ../../c-api/exceptions.rst:347 +msgid "" +"On success, this function returns a Python string object with the found " +"line. On failure, this function returns ``NULL`` without an exception set." +msgstr "" +"Em caso de sucesso, esta função retorna um objeto string do Python com a " +"linha encontrada. Em caso de falha, esta função retorna ``NULL`` sem definir " +"uma exceção." + +#: ../../c-api/exceptions.rst:353 +msgid "" +"Similar to :c:func:`PyErr_ProgramTextObject`, but *filename* is a :c:expr:" +"`const char *`, which is decoded with the :term:`filesystem encoding and " +"error handler`, instead of a Python object reference." +msgstr "" +"Semelhante a :c:func:`PyErr_ProgramTextObject`, mas *filename* é um :c:expr:" +"`const char *`, que é decodificado com :term:`tratador de erros e " +"codificação do sistema de arquivos`, em vez de uma referência de objeto " +"Python." + +#: ../../c-api/exceptions.rst:360 +msgid "Issuing warnings" +msgstr "Emitindo avisos" + +#: ../../c-api/exceptions.rst:362 +msgid "" +"Use these functions to issue warnings from C code. They mirror similar " +"functions exported by the Python :mod:`warnings` module. They normally " +"print a warning message to *sys.stderr*; however, it is also possible that " +"the user has specified that warnings are to be turned into errors, and in " +"that case they will raise an exception. It is also possible that the " +"functions raise an exception because of a problem with the warning " +"machinery. The return value is ``0`` if no exception is raised, or ``-1`` if " +"an exception is raised. (It is not possible to determine whether a warning " +"message is actually printed, nor what the reason is for the exception; this " +"is intentional.) If an exception is raised, the caller should do its normal " +"exception handling (for example, :c:func:`Py_DECREF` owned references and " +"return an error value)." +msgstr "" +"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:377 +msgid "" +"Issue a warning message. The *category* argument is a warning category (see " +"below) or ``NULL``; the *message* argument is a UTF-8 encoded string. " +"*stack_level* is a positive number giving a number of stack frames; the " +"warning will be issued from the currently executing line of code in that " +"stack frame. A *stack_level* of 1 is the function calling :c:func:" +"`PyErr_WarnEx`, 2 is the function above that, and so forth." +msgstr "" +"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:384 +msgid "" +"Warning categories must be subclasses of :c:data:`PyExc_Warning`; :c:data:" +"`PyExc_Warning` is a subclass of :c:data:`PyExc_Exception`; the default " +"warning category is :c:data:`PyExc_RuntimeWarning`. The standard Python " +"warning categories are available as global variables whose names are " +"enumerated at :ref:`standardwarningcategories`." +msgstr "" +"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:390 +msgid "" +"For information about warning control, see the documentation for the :mod:" +"`warnings` module and the :option:`-W` option in the command line " +"documentation. There is no C API for warning control." +msgstr "" +"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:397 +msgid "" +"Issue a warning message with explicit control over all warning attributes. " +"This is a straightforward wrapper around the Python function :func:`warnings." +"warn_explicit`; see there for more information. The *module* and *registry* " +"arguments may be set to ``NULL`` to get the default effect described there." +msgstr "" +"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:408 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " +"*module* are UTF-8 encoded strings, and *filename* is decoded from the :term:" +"`filesystem encoding and error handler`." +msgstr "" +"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:415 +msgid "" +"Function similar to :c:func:`PyErr_WarnEx`, but uses :c:func:" +"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" +"encoded string." +msgstr "" + +#: ../../c-api/exceptions.rst:424 +msgid "" +"Similar to :c:func:`PyErr_WarnExplicit`, but uses :c:func:" +"`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" +"encoded string." +msgstr "" + +#: ../../c-api/exceptions.rst:433 +msgid "" +"Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" +"`ResourceWarning` and it passes *source* to :class:`!warnings." +"WarningMessage`." +msgstr "" +"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:440 +msgid "Querying the error indicator" +msgstr "Consultando o indicador de erro" + +#: ../../c-api/exceptions.rst:444 +msgid "" +"Test whether the error indicator is set. If set, return the exception " +"*type* (the first argument to the last call to one of the ``PyErr_Set*`` " +"functions or to :c:func:`PyErr_Restore`). If not set, return ``NULL``. You " +"do not own a reference to the return value, so you do not need to :c:func:" +"`Py_DECREF` it." +msgstr "" + +#: ../../c-api/exceptions.rst:450 +msgid "The caller must have an :term:`attached thread state`." +msgstr "O chamador deve ter um :term:`estado de thread anexado`." + +#: ../../c-api/exceptions.rst:454 +msgid "" +"Do not compare the return value to a specific exception; use :c:func:" +"`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " +"fail since the exception may be an instance instead of a class, in the case " +"of a class exception, or it may be a subclass of the expected exception.)" +msgstr "" + +#: ../../c-api/exceptions.rst:462 +msgid "" +"Equivalent to ``PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)``. This " +"should only be called when an exception is actually set; a memory access " +"violation will occur if no exception has been raised." +msgstr "" + +#: ../../c-api/exceptions.rst:469 +msgid "" +"Return true if the *given* exception matches the exception type in *exc*. " +"If *exc* is a class object, this also returns true when *given* is an " +"instance of a subclass. If *exc* is a tuple, all exception types in the " +"tuple (and recursively in subtuples) are searched for a match." +msgstr "" + +#: ../../c-api/exceptions.rst:477 +msgid "" +"Return the exception currently being raised, clearing the error indicator at " +"the same time. Return ``NULL`` if the error indicator is not set." +msgstr "" + +#: ../../c-api/exceptions.rst:480 +msgid "" +"This function is used by code that needs to catch exceptions, or code that " +"needs to save and restore the error indicator temporarily." +msgstr "" + +#: ../../c-api/exceptions.rst:483 ../../c-api/exceptions.rst:527 +msgid "For example::" +msgstr "Por exemplo::" + +#: ../../c-api/exceptions.rst:485 +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:493 +msgid "" +":c:func:`PyErr_GetHandledException`, to save the exception currently being " +"handled." +msgstr "" + +#: ../../c-api/exceptions.rst:501 +msgid "" +"Set *exc* as the exception currently being raised, clearing the existing " +"exception if one is set." +msgstr "" + +#: ../../c-api/exceptions.rst:506 +msgid "This call steals a reference to *exc*, which must be a valid exception." +msgstr "" + +#: ../../c-api/exceptions.rst:515 +msgid "Use :c:func:`PyErr_GetRaisedException` instead." +msgstr "Use :c:func:`PyErr_GetRaisedException` em vez disso." + +#: ../../c-api/exceptions.rst:517 +msgid "" +"Retrieve the error indicator into three variables whose addresses are " +"passed. If the error indicator is not set, set all three variables to " +"``NULL``. If it is set, it will be cleared and you own a reference to each " +"object retrieved. The value and traceback object may be ``NULL`` even when " +"the type object is not." +msgstr "" + +#: ../../c-api/exceptions.rst:524 +msgid "" +"This function is normally only used by legacy code that needs to catch " +"exceptions or save and restore the error indicator temporarily." +msgstr "" + +#: ../../c-api/exceptions.rst:529 +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:543 +msgid "Use :c:func:`PyErr_SetRaisedException` instead." +msgstr "Use :c:func:`PyErr_SetRaisedException` em vez disso." + +#: ../../c-api/exceptions.rst:545 +msgid "" +"Set the error indicator from the three objects, *type*, *value*, and " +"*traceback*, clearing the existing exception if one is set. If the objects " +"are ``NULL``, the error indicator is cleared. Do not pass a ``NULL`` type " +"and non-``NULL`` value or traceback. The exception type should be a class. " +"Do not pass an invalid exception type or value. (Violating these rules will " +"cause subtle problems later.) This call takes away a reference to each " +"object: you must own a reference to each object before the call and after " +"the call you no longer own these references. (If you don't understand this, " +"don't use this function. I warned you.)" +msgstr "" + +#: ../../c-api/exceptions.rst:559 +msgid "" +"This function is normally only used by legacy code that needs to save and " +"restore the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save " +"the current error indicator." +msgstr "" + +#: ../../c-api/exceptions.rst:568 +msgid "" +"Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" +"normalization." +msgstr "" +"Use :c:func:`PyErr_GetRaisedException` em vez disso, para evitar qualquer " +"possível desnormalização." + +#: ../../c-api/exceptions.rst:571 +msgid "" +"Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " +"below can be \"unnormalized\", meaning that ``*exc`` is a class object but " +"``*val`` is not an instance of the same class. This function can be used " +"to instantiate the class in that case. If the values are already " +"normalized, nothing happens. The delayed normalization is implemented to " +"improve performance." +msgstr "" + +#: ../../c-api/exceptions.rst:579 +msgid "" +"This function *does not* implicitly set the :attr:`~BaseException." +"__traceback__` attribute on the exception value. If setting the traceback " +"appropriately is desired, the following additional snippet is needed::" +msgstr "" + +#: ../../c-api/exceptions.rst:584 +msgid "" +"if (tb != NULL) {\n" +" PyException_SetTraceback(val, tb);\n" +"}" +msgstr "" +"if (tb != NULL) {\n" +"PyException_SetTraceback(val, tb);\n" +"}" + +#: ../../c-api/exceptions.rst:591 +msgid "" +"Retrieve the active exception instance, as would be returned by :func:`sys." +"exception`. This refers to an exception that was *already caught*, not to an " +"exception that was freshly raised. Returns a new reference to the exception " +"or ``NULL``. Does not modify the interpreter's exception state." +msgstr "" + +#: ../../c-api/exceptions.rst:598 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_SetHandledException` to restore or " +"clear the exception state." +msgstr "" + +#: ../../c-api/exceptions.rst:607 +msgid "" +"Set the active exception, as known from ``sys.exception()``. This refers to " +"an exception that was *already caught*, not to an exception that was freshly " +"raised. To clear the exception state, pass ``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst:614 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_GetHandledException` to get the " +"exception state." +msgstr "" + +#: ../../c-api/exceptions.rst:623 +msgid "" +"Retrieve the old-style representation of the exception info, as known from :" +"func:`sys.exc_info`. This refers to an exception that was *already caught*, " +"not to an exception that was freshly raised. Returns new references for the " +"three objects, any of which may be ``NULL``. Does not modify the exception " +"info state. This function is kept for backwards compatibility. Prefer " +"using :c:func:`PyErr_GetHandledException`." +msgstr "" + +#: ../../c-api/exceptions.rst:632 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_SetExcInfo` to restore or clear the " +"exception state." +msgstr "" + +#: ../../c-api/exceptions.rst:642 +msgid "" +"Set the exception info, as known from ``sys.exc_info()``. This refers to an " +"exception that was *already caught*, not to an exception that was freshly " +"raised. This function steals the references of the arguments. To clear the " +"exception state, pass ``NULL`` for all three arguments. This function is " +"kept for backwards compatibility. Prefer using :c:func:" +"`PyErr_SetHandledException`." +msgstr "" + +#: ../../c-api/exceptions.rst:651 +msgid "" +"This function is not normally used by code that wants to handle exceptions. " +"Rather, it can be used when code needs to save and restore the exception " +"state temporarily. Use :c:func:`PyErr_GetExcInfo` to read the exception " +"state." +msgstr "" + +#: ../../c-api/exceptions.rst:658 +msgid "" +"The ``type`` and ``traceback`` arguments are no longer used and can be NULL. " +"The interpreter now derives them from the exception instance (the ``value`` " +"argument). The function still steals references of all three arguments." +msgstr "" + +#: ../../c-api/exceptions.rst:666 +msgid "Signal Handling" +msgstr "Tratamento de sinal" + +#: ../../c-api/exceptions.rst:676 +msgid "" +"Handle external interruptions, such as signals or activating a debugger, " +"whose processing has been delayed until it is safe to run Python code and/or " +"raise exceptions." +msgstr "" + +#: ../../c-api/exceptions.rst:680 +msgid "" +"For example, pressing :kbd:`Ctrl-C` causes a terminal to send the :py:data:" +"`signal.SIGINT` signal. This function executes the corresponding Python " +"signal handler, which, by default, raises the :exc:`KeyboardInterrupt` " +"exception." +msgstr "" + +#: ../../c-api/exceptions.rst:685 +msgid "" +":c:func:`!PyErr_CheckSignals` should be called by long-running C code " +"frequently enough so that the response appears immediate to humans." +msgstr "" + +#: ../../c-api/exceptions.rst:688 +msgid "Handlers invoked by this function currently include:" +msgstr "" + +#: ../../c-api/exceptions.rst:690 +msgid "" +"Signal handlers, including Python functions registered using the :mod:" +"`signal` module." +msgstr "" + +#: ../../c-api/exceptions.rst:693 +msgid "" +"Signal handlers are only run in the main thread of the main interpreter." +msgstr "" + +#: ../../c-api/exceptions.rst:695 +msgid "" +"(This is where the function got the name: originally, signals were the only " +"way to interrupt the interpreter.)" +msgstr "" + +#: ../../c-api/exceptions.rst:698 +msgid "Running the garbage collector, if necessary." +msgstr "" + +#: ../../c-api/exceptions.rst:700 +msgid "Executing a pending :ref:`remote debugger ` script." +msgstr "" + +#: ../../c-api/exceptions.rst:702 +msgid "" +"If any handler raises an exception, immediately return ``-1`` with that " +"exception set. Any remaining interruptions are left to be processed on the " +"next :c:func:`PyErr_CheckSignals()` invocation, if appropriate." +msgstr "" + +#: ../../c-api/exceptions.rst:707 +msgid "" +"If all handlers finish successfully, or there are no handlers to run, return " +"``0``." +msgstr "" + +#: ../../c-api/exceptions.rst:710 +msgid "This function may now invoke the garbage collector." +msgstr "" + +#: ../../c-api/exceptions.rst:713 +msgid "" +"This function may now execute a remote debugger script, if remote debugging " +"is enabled." +msgstr "" + +#: ../../c-api/exceptions.rst:725 +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:729 ../../c-api/exceptions.rst:756 +msgid "" +"This function is async-signal-safe. It can be called without an :term:" +"`attached thread state` and from a C signal handler." +msgstr "" + +#: ../../c-api/exceptions.rst:739 +msgid "" +"Simulate the effect of a signal arriving. The next time :c:func:" +"`PyErr_CheckSignals` is called, the Python signal handler for the given " +"signal number will be called." +msgstr "" + +#: ../../c-api/exceptions.rst:743 +msgid "" +"This function can be called by C code that sets up its own signal handling " +"and wants Python signal handlers to be invoked as expected when an " +"interruption is requested (for example when the user presses Ctrl-C to " +"interrupt an operation)." +msgstr "" + +#: ../../c-api/exceptions.rst:748 +msgid "" +"If the given signal isn't handled by Python (it was set to :py:const:`signal." +"SIG_DFL` or :py:const:`signal.SIG_IGN`), it will be ignored." +msgstr "" +"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:751 +msgid "" +"If *signum* is outside of the allowed range of signal numbers, ``-1`` is " +"returned. Otherwise, ``0`` is returned. The error indicator is never " +"changed by this function." +msgstr "" + +#: ../../c-api/exceptions.rst:764 +msgid "" +"This utility function specifies a file descriptor to which the signal number " +"is written as a single byte whenever a signal is received. *fd* must be non-" +"blocking. It returns the previous such file descriptor." +msgstr "" + +#: ../../c-api/exceptions.rst:768 +msgid "" +"The value ``-1`` disables the feature; this is the initial state. This is " +"equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " +"checking. *fd* should be a valid file descriptor. The function should only " +"be called from the main thread." +msgstr "" +"O valor ``-1`` desabilita o recurso; este é o estado inicial. Isso é " +"equivalente à :func:`signal.set_wakeup_fd` em Python, mas sem nenhuma " +"verificação de erro. *fd* deve ser um descritor de arquivo válido. A função " +"só deve ser chamada a partir da thread principal." + +#: ../../c-api/exceptions.rst:773 +msgid "On Windows, the function now also supports socket handles." +msgstr "No Windows, a função agora também suporta manipuladores de socket." + +#: ../../c-api/exceptions.rst:778 +msgid "Exception Classes" +msgstr "Classes de exceção" + +#: ../../c-api/exceptions.rst:782 +msgid "" +"This utility function creates and returns a new exception class. The *name* " +"argument must be the name of the new exception, a C string of the form " +"``module.classname``. The *base* and *dict* arguments are normally " +"``NULL``. This creates a class object derived from :exc:`Exception` " +"(accessible in C as :c:data:`PyExc_Exception`)." +msgstr "" + +#: ../../c-api/exceptions.rst:788 +msgid "" +"The :attr:`~type.__module__` attribute of the new class is set to the first " +"part (up to the last dot) of the *name* argument, and the class name is set " +"to the last part (after the last dot). The *base* argument can be used to " +"specify alternate base classes; it can either be only one class or a tuple " +"of classes. The *dict* argument can be used to specify a dictionary of class " +"variables and methods." +msgstr "" + +#: ../../c-api/exceptions.rst:797 +msgid "" +"Same as :c:func:`PyErr_NewException`, except that the new exception class " +"can easily be given a docstring: If *doc* is non-``NULL``, it will be used " +"as the docstring for the exception class." +msgstr "" + +#: ../../c-api/exceptions.rst:806 +msgid "" +"Return non-zero if *ob* is an exception class, zero otherwise. This function " +"always succeeds." +msgstr "" + +#: ../../c-api/exceptions.rst:811 +msgid "Return :c:member:`~PyTypeObject.tp_name` of the exception class *ob*." +msgstr "Retorna :c:member:`~PyTypeObject.tp_name` da classe de exceção *ob*." + +#: ../../c-api/exceptions.rst:815 +msgid "Exception Objects" +msgstr "Objeto Exceção" + +#: ../../c-api/exceptions.rst:819 +msgid "" +"Return true if *op* is an instance of :class:`BaseException`, false " +"otherwise. This function always succeeds." +msgstr "" + +#: ../../c-api/exceptions.rst:825 +msgid "Equivalent to :c:func:`Py_TYPE(op) `." +msgstr "" + +#: ../../c-api/exceptions.rst:830 +msgid "" +"Return the traceback associated with the exception as a new reference, as " +"accessible from Python through the :attr:`~BaseException.__traceback__` " +"attribute. If there is no traceback associated, this returns ``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst:838 +msgid "" +"Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " +"clear it." +msgstr "" +"Defina o retorno traceback (situação da pilha de execução) associado à " +"exceção como *tb*. Use ``Py_None`` para limpá-lo." + +#: ../../c-api/exceptions.rst:844 +msgid "" +"Return the context (another exception instance during whose handling *ex* " +"was raised) associated with the exception as a new reference, as accessible " +"from Python through the :attr:`~BaseException.__context__` attribute. If " +"there is no context associated, this returns ``NULL``." +msgstr "" + +#: ../../c-api/exceptions.rst:852 +msgid "" +"Set the context associated with the exception to *ctx*. Use ``NULL`` to " +"clear it. There is no type check to make sure that *ctx* is an exception " +"instance. This steals a reference to *ctx*." +msgstr "" + +#: ../../c-api/exceptions.rst:859 +msgid "" +"Return the cause (either an exception instance, or ``None``, set by " +"``raise ... from ...``) associated with the exception as a new reference, as " +"accessible from Python through the :attr:`~BaseException.__cause__` " +"attribute." +msgstr "" + +#: ../../c-api/exceptions.rst:867 +msgid "" +"Set the cause associated with the exception to *cause*. Use ``NULL`` to " +"clear it. There is no type check to make sure that *cause* is either an " +"exception instance or ``None``. This steals a reference to *cause*." +msgstr "" + +#: ../../c-api/exceptions.rst:871 +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:877 +msgid "Return :attr:`~BaseException.args` of exception *ex*." +msgstr "Retorna :attr:`~BaseException.args` da exceção *ex*." + +#: ../../c-api/exceptions.rst:882 +msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." +msgstr "" + +#: ../../c-api/exceptions.rst:886 +msgid "" +"Implement part of the interpreter's implementation of :keyword:`!except*`. " +"*orig* is the original exception that was caught, and *excs* is the list of " +"the exceptions that need to be raised. This list contains the unhandled part " +"of *orig*, if any, as well as the exceptions that were raised from the :" +"keyword:`!except*` clauses (so they have a different traceback from *orig*) " +"and those that were reraised (and have the same traceback as *orig*). Return " +"the :exc:`ExceptionGroup` that needs to be reraised in the end, or ``None`` " +"if there is nothing to reraise." +msgstr "" + +#: ../../c-api/exceptions.rst:900 +msgid "Unicode Exception Objects" +msgstr "Objetos de exceção Unicode" + +#: ../../c-api/exceptions.rst:902 +msgid "" +"The following functions are used to create and modify Unicode exceptions " +"from C." +msgstr "" +"As seguintes funções são usadas para criar e modificar exceções Unicode de C." + +#: ../../c-api/exceptions.rst:906 +msgid "" +"Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " +"*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " +"UTF-8 encoded strings." +msgstr "" +"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:913 +msgid "Return the *encoding* attribute of the given exception object." +msgstr "Retorna o atributo * encoding* dado no objeto da exceção." + +#: ../../c-api/exceptions.rst:919 +msgid "Return the *object* attribute of the given exception object." +msgstr "Retorna o atributo *object* dado no objeto da exceção." + +#: ../../c-api/exceptions.rst:925 +msgid "" +"Get the *start* attribute of the given exception object and place it into " +"*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " +"on failure." +msgstr "" +"Obtém o atributo *start* do objeto da exceção coloca-o em *\\*start*. " +"*start* não deve ser ``NULL``. Retorna ``0`` se não der erro, ``-1`` caso dê " +"erro." + +#: ../../c-api/exceptions.rst:929 +msgid "" +"If the :attr:`UnicodeError.object` is an empty sequence, the resulting " +"*start* is ``0``. Otherwise, it is clipped to ``[0, len(object) - 1]``." +msgstr "" + +#: ../../c-api/exceptions.rst:932 +msgid ":attr:`UnicodeError.start`" +msgstr ":attr:`UnicodeError.start`" + +#: ../../c-api/exceptions.rst:938 +msgid "" +"Set the *start* attribute of the given exception object to *start*. Return " +"``0`` on success, ``-1`` on failure." +msgstr "" + +#: ../../c-api/exceptions.rst:943 +msgid "" +"While passing a negative *start* does not raise an exception, the " +"corresponding getters will not consider it as a relative offset." +msgstr "" + +#: ../../c-api/exceptions.rst:951 +msgid "" +"Get the *end* attribute of the given exception object and place it into " +"*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " +"failure." +msgstr "" +"Obtenha o atributo *end* dado no objeto de exceção e coloque *\\*end*. O " +"*end* não deve ser ``NULL``. Em caso de sucesso, retorna ``0``, em caso de " +"falha, retorna ``-1``." + +#: ../../c-api/exceptions.rst:955 +msgid "" +"If the :attr:`UnicodeError.object` is an empty sequence, the resulting *end* " +"is ``0``. Otherwise, it is clipped to ``[1, len(object)]``." +msgstr "" + +#: ../../c-api/exceptions.rst:962 +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:965 +msgid ":attr:`UnicodeError.end`" +msgstr ":attr:`UnicodeError.end`" + +#: ../../c-api/exceptions.rst:971 +msgid "Return the *reason* attribute of the given exception object." +msgstr "Retorna o atributo *reason* dado no objeto da exceção." + +#: ../../c-api/exceptions.rst:977 +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:984 +msgid "Recursion Control" +msgstr "Controle de recursão" + +#: ../../c-api/exceptions.rst:986 +msgid "" +"These two functions provide a way to perform safe recursive calls at the C " +"level, both in the core and in extension modules. They are needed if the " +"recursive code does not necessarily invoke Python code (which tracks its " +"recursion depth automatically). They are also not needed for *tp_call* " +"implementations because the :ref:`call protocol ` takes care of " +"recursion handling." +msgstr "" + +#: ../../c-api/exceptions.rst:995 +msgid "Marks a point where a recursive C-level call is about to be performed." +msgstr "" +"Marca um ponto em que a chamada recursiva em nível C está prestes a ser " +"executada." + +#: ../../c-api/exceptions.rst:997 +msgid "" +"The function then checks if the stack limit is reached. If this is the " +"case, a :exc:`RecursionError` is set and a nonzero value is returned. " +"Otherwise, zero is returned." +msgstr "" + +#: ../../c-api/exceptions.rst:1001 +msgid "" +"*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` " +"to be concatenated to the :exc:`RecursionError` message caused by the " +"recursion depth limit." +msgstr "" + +#: ../../c-api/exceptions.rst:1006 +msgid "The :c:func:`PyUnstable_ThreadState_SetStackProtection` function." +msgstr "" + +#: ../../c-api/exceptions.rst:1008 ../../c-api/exceptions.rst:1016 +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:1013 +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:1019 +msgid "" +"Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " +"requires special recursion handling. In addition to protecting the stack, :" +"c:member:`~PyTypeObject.tp_repr` also needs to track objects to prevent " +"cycles. The following two functions facilitate this functionality. " +"Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." +msgstr "" + +#: ../../c-api/exceptions.rst:1027 +msgid "" +"Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " +"implementation to detect cycles." +msgstr "" +"Chamado no início da implementação :c:member:`~PyTypeObject.tp_repr` para " +"detectar ciclos." + +#: ../../c-api/exceptions.rst:1030 +msgid "" +"If the object has already been processed, the function returns a positive " +"integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " +"should return a string object indicating a cycle. As examples, :class:" +"`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." +msgstr "" + +#: ../../c-api/exceptions.rst:1036 +msgid "" +"The function will return a negative integer if the recursion limit is " +"reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " +"should typically return ``NULL``." +msgstr "" +"A função retornará um inteiro negativo se o limite da recursão for atingido. " +"Nesse caso a implementação :c:member:`~PyTypeObject.tp_repr` deverá, " +"normalmente,. retornar ``NULL``." + +#: ../../c-api/exceptions.rst:1040 +msgid "" +"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." + +#: ../../c-api/exceptions.rst:1045 +msgid "" +"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." + +#: ../../c-api/exceptions.rst:1050 +msgid "" +"Get the recursion limit for the current interpreter. It can be set with :c:" +"func:`Py_SetRecursionLimit`. The recursion limit prevents the Python " +"interpreter stack from growing infinitely." +msgstr "" + +#: ../../c-api/exceptions.rst:1054 ../../c-api/exceptions.rst:1064 +msgid "" +"This function cannot fail, and the caller must hold an :term:`attached " +"thread state`." +msgstr "" + +#: ../../c-api/exceptions.rst:1058 +msgid ":py:func:`sys.getrecursionlimit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1062 +msgid "Set the recursion limit for the current interpreter." +msgstr "" + +#: ../../c-api/exceptions.rst:1068 +msgid ":py:func:`sys.setrecursionlimit`" +msgstr "" + +#: ../../c-api/exceptions.rst:1073 +msgid "Exception and warning types" +msgstr "" + +#: ../../c-api/exceptions.rst:1075 +msgid "" +"All standard Python exceptions and warning categories are available as " +"global variables whose names are ``PyExc_`` followed by the Python exception " +"name. These have the type :c:expr:`PyObject*`; they are all class objects." +msgstr "" + +#: ../../c-api/exceptions.rst:1079 +msgid "For completeness, here are all the variables:" +msgstr "" + +#: ../../c-api/exceptions.rst:1082 +msgid "Exception types" +msgstr "Tipos de exceção" + +#: ../../c-api/exceptions.rst:1089 ../../c-api/exceptions.rst:1235 +#: ../../c-api/exceptions.rst:1265 +msgid "C name" +msgstr "Nome C" + +#: ../../c-api/exceptions.rst:1090 ../../c-api/exceptions.rst:1236 +#: ../../c-api/exceptions.rst:1266 +msgid "Python name" +msgstr "Nome Python" + +#: ../../c-api/exceptions.rst:1092 +msgid ":exc:`BaseException`" +msgstr ":exc:`BaseException`" + +#: ../../c-api/exceptions.rst:1094 +msgid ":exc:`BaseExceptionGroup`" +msgstr ":exc:`BaseExceptionGroup`" + +#: ../../c-api/exceptions.rst:1096 +msgid ":exc:`Exception`" +msgstr ":exc:`Exception`" + +#: ../../c-api/exceptions.rst:1098 +msgid ":exc:`ArithmeticError`" +msgstr ":exc:`ArithmeticError`" + +#: ../../c-api/exceptions.rst:1100 +msgid ":exc:`AssertionError`" +msgstr ":exc:`AssertionError`" + +#: ../../c-api/exceptions.rst:1102 +msgid ":exc:`AttributeError`" +msgstr ":exc:`AttributeError`" + +#: ../../c-api/exceptions.rst:1104 +msgid ":exc:`BlockingIOError`" +msgstr ":exc:`BlockingIOError`" + +#: ../../c-api/exceptions.rst:1106 +msgid ":exc:`BrokenPipeError`" +msgstr ":exc:`BrokenPipeError`" + +#: ../../c-api/exceptions.rst:1108 +msgid ":exc:`BufferError`" +msgstr ":exc:`BufferError`" + +#: ../../c-api/exceptions.rst:1110 +msgid ":exc:`ChildProcessError`" +msgstr ":exc:`ChildProcessError`" + +#: ../../c-api/exceptions.rst:1112 +msgid ":exc:`ConnectionAbortedError`" +msgstr ":exc:`ConnectionAbortedError`" + +#: ../../c-api/exceptions.rst:1114 +msgid ":exc:`ConnectionError`" +msgstr ":exc:`ConnectionError`" + +#: ../../c-api/exceptions.rst:1116 +msgid ":exc:`ConnectionRefusedError`" +msgstr ":exc:`ConnectionRefusedError`" + +#: ../../c-api/exceptions.rst:1118 +msgid ":exc:`ConnectionResetError`" +msgstr ":exc:`ConnectionResetError`" + +#: ../../c-api/exceptions.rst:1120 +msgid ":exc:`EOFError`" +msgstr ":exc:`EOFError`" + +#: ../../c-api/exceptions.rst:1122 +msgid ":exc:`FileExistsError`" +msgstr ":exc:`FileExistsError`" + +#: ../../c-api/exceptions.rst:1124 +msgid ":exc:`FileNotFoundError`" +msgstr ":exc:`FileNotFoundError`" + +#: ../../c-api/exceptions.rst:1126 +msgid ":exc:`FloatingPointError`" +msgstr ":exc:`FloatingPointError`" + +#: ../../c-api/exceptions.rst:1128 +msgid ":exc:`GeneratorExit`" +msgstr ":exc:`GeneratorExit`" + +#: ../../c-api/exceptions.rst:1130 +msgid ":exc:`ImportError`" +msgstr ":exc:`ImportError`" + +#: ../../c-api/exceptions.rst:1132 +msgid ":exc:`IndentationError`" +msgstr ":exc:`IndentationError`" + +#: ../../c-api/exceptions.rst:1134 +msgid ":exc:`IndexError`" +msgstr ":exc:`IndexError`" + +#: ../../c-api/exceptions.rst:1136 +msgid ":exc:`InterruptedError`" +msgstr ":exc:`InterruptedError`" + +#: ../../c-api/exceptions.rst:1138 +msgid ":exc:`IsADirectoryError`" +msgstr ":exc:`IsADirectoryError`" + +#: ../../c-api/exceptions.rst:1140 +msgid ":exc:`KeyError`" +msgstr ":exc:`KeyError`" + +#: ../../c-api/exceptions.rst:1142 +msgid ":exc:`KeyboardInterrupt`" +msgstr ":exc:`KeyboardInterrupt`" + +#: ../../c-api/exceptions.rst:1144 +msgid ":exc:`LookupError`" +msgstr ":exc:`LookupError`" + +#: ../../c-api/exceptions.rst:1146 +msgid ":exc:`MemoryError`" +msgstr ":exc:`MemoryError`" + +#: ../../c-api/exceptions.rst:1148 +msgid ":exc:`ModuleNotFoundError`" +msgstr ":exc:`ModuleNotFoundError`" + +#: ../../c-api/exceptions.rst:1150 +msgid ":exc:`NameError`" +msgstr ":exc:`NameError`" + +#: ../../c-api/exceptions.rst:1152 +msgid ":exc:`NotADirectoryError`" +msgstr ":exc:`NotADirectoryError`" + +#: ../../c-api/exceptions.rst:1154 +msgid ":exc:`NotImplementedError`" +msgstr ":exc:`NotImplementedError`" + +#: ../../c-api/exceptions.rst:1156 ../../c-api/exceptions.rst:1239 +#: ../../c-api/exceptions.rst:1242 ../../c-api/exceptions.rst:1245 +msgid ":exc:`OSError`" +msgstr ":exc:`OSError`" + +#: ../../c-api/exceptions.rst:1158 +msgid ":exc:`OverflowError`" +msgstr ":exc:`OverflowError`" + +#: ../../c-api/exceptions.rst:1160 +msgid ":exc:`PermissionError`" +msgstr ":exc:`PermissionError`" + +#: ../../c-api/exceptions.rst:1162 +msgid ":exc:`ProcessLookupError`" +msgstr ":exc:`ProcessLookupError`" + +#: ../../c-api/exceptions.rst:1164 +msgid ":exc:`PythonFinalizationError`" +msgstr ":exc:`PythonFinalizationError`" + +#: ../../c-api/exceptions.rst:1166 +msgid ":exc:`RecursionError`" +msgstr ":exc:`RecursionError`" + +#: ../../c-api/exceptions.rst:1168 +msgid ":exc:`ReferenceError`" +msgstr ":exc:`ReferenceError`" + +#: ../../c-api/exceptions.rst:1170 +msgid ":exc:`RuntimeError`" +msgstr ":exc:`RuntimeError`" + +#: ../../c-api/exceptions.rst:1172 +msgid ":exc:`StopAsyncIteration`" +msgstr ":exc:`StopAsyncIteration`" + +#: ../../c-api/exceptions.rst:1174 +msgid ":exc:`StopIteration`" +msgstr ":exc:`StopIteration`" + +#: ../../c-api/exceptions.rst:1176 +msgid ":exc:`SyntaxError`" +msgstr ":exc:`SyntaxError`" + +#: ../../c-api/exceptions.rst:1178 +msgid ":exc:`SystemError`" +msgstr ":exc:`SystemError`" + +#: ../../c-api/exceptions.rst:1180 +msgid ":exc:`SystemExit`" +msgstr ":exc:`SystemExit`" + +#: ../../c-api/exceptions.rst:1182 +msgid ":exc:`TabError`" +msgstr ":exc:`TabError`" + +#: ../../c-api/exceptions.rst:1184 +msgid ":exc:`TimeoutError`" +msgstr ":exc:`TimeoutError`" + +#: ../../c-api/exceptions.rst:1186 +msgid ":exc:`TypeError`" +msgstr ":exc:`TypeError`" + +#: ../../c-api/exceptions.rst:1188 +msgid ":exc:`UnboundLocalError`" +msgstr ":exc:`UnboundLocalError`" + +#: ../../c-api/exceptions.rst:1190 +msgid ":exc:`UnicodeDecodeError`" +msgstr ":exc:`UnicodeDecodeError`" + +#: ../../c-api/exceptions.rst:1192 +msgid ":exc:`UnicodeEncodeError`" +msgstr ":exc:`UnicodeEncodeError`" + +#: ../../c-api/exceptions.rst:1194 +msgid ":exc:`UnicodeError`" +msgstr ":exc:`UnicodeError`" + +#: ../../c-api/exceptions.rst:1196 +msgid ":exc:`UnicodeTranslateError`" +msgstr ":exc:`UnicodeTranslateError`" + +#: ../../c-api/exceptions.rst:1198 +msgid ":exc:`ValueError`" +msgstr ":exc:`ValueError`" + +#: ../../c-api/exceptions.rst:1200 +msgid ":exc:`ZeroDivisionError`" +msgstr ":exc:`ZeroDivisionError`" + +#: ../../c-api/exceptions.rst:1202 +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` e :c:data:" +"`PyExc_TimeoutError` foram introduzidos seguindo a :pep:`3151`." + +#: ../../c-api/exceptions.rst:1212 +msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." +msgstr ":c:data:`PyExc_StopAsyncIteration` e :c:data:`PyExc_RecursionError`." + +#: ../../c-api/exceptions.rst:1215 +msgid ":c:data:`PyExc_ModuleNotFoundError`." +msgstr ":c:data:`PyExc_ModuleNotFoundError`." + +#: ../../c-api/exceptions.rst:1218 +msgid ":c:data:`PyExc_BaseExceptionGroup`." +msgstr ":c:data:`PyExc_BaseExceptionGroup`." + +#: ../../c-api/exceptions.rst:1223 +msgid "OSError aliases" +msgstr "" + +#: ../../c-api/exceptions.rst:1225 +msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." +msgstr "" + +#: ../../c-api/exceptions.rst:1227 +msgid "These aliases used to be separate exception types." +msgstr "Esses aliases costumavam ser tipos de exceção separados." + +#: ../../c-api/exceptions.rst:1237 +msgid "Notes" +msgstr "Notas" + +#: ../../c-api/exceptions.rst:1246 +msgid "[win]_" +msgstr "[win]_" + +#: ../../c-api/exceptions.rst:1248 +msgid "Notes:" +msgstr "Notas:" + +#: ../../c-api/exceptions.rst:1251 +msgid "" +":c:var:`!PyExc_WindowsError` is only defined on Windows; protect code that " +"uses this by testing that the preprocessor macro ``MS_WINDOWS`` is defined." +msgstr "" + +#: ../../c-api/exceptions.rst:1258 +msgid "Warning types" +msgstr "" + +#: ../../c-api/exceptions.rst:1268 +msgid ":exc:`Warning`" +msgstr ":exc:`Warning`" + +#: ../../c-api/exceptions.rst:1270 +msgid ":exc:`BytesWarning`" +msgstr ":exc:`BytesWarning`" + +#: ../../c-api/exceptions.rst:1272 +msgid ":exc:`DeprecationWarning`" +msgstr ":exc:`DeprecationWarning`" + +#: ../../c-api/exceptions.rst:1274 +msgid ":exc:`EncodingWarning`" +msgstr ":exc:`EncodingWarning`" + +#: ../../c-api/exceptions.rst:1276 +msgid ":exc:`FutureWarning`" +msgstr ":exc:`FutureWarning`" + +#: ../../c-api/exceptions.rst:1278 +msgid ":exc:`ImportWarning`" +msgstr ":exc:`ImportWarning`" + +#: ../../c-api/exceptions.rst:1280 +msgid ":exc:`PendingDeprecationWarning`" +msgstr ":exc:`PendingDeprecationWarning`" + +#: ../../c-api/exceptions.rst:1282 +msgid ":exc:`ResourceWarning`" +msgstr ":exc:`ResourceWarning`" + +#: ../../c-api/exceptions.rst:1284 +msgid ":exc:`RuntimeWarning`" +msgstr ":exc:`RuntimeWarning`" + +#: ../../c-api/exceptions.rst:1286 +msgid ":exc:`SyntaxWarning`" +msgstr ":exc:`SyntaxWarning`" + +#: ../../c-api/exceptions.rst:1288 +msgid ":exc:`UnicodeWarning`" +msgstr ":exc:`UnicodeWarning`" + +#: ../../c-api/exceptions.rst:1290 +msgid ":exc:`UserWarning`" +msgstr ":exc:`UserWarning`" + +#: ../../c-api/exceptions.rst:1292 +msgid ":c:data:`PyExc_ResourceWarning`." +msgstr ":c:data:`PyExc_ResourceWarning`." + +#: ../../c-api/exceptions.rst:1295 +msgid ":c:data:`PyExc_EncodingWarning`." +msgstr ":c:data:`PyExc_EncodingWarning`." + +#: ../../c-api/exceptions.rst:1300 +msgid "Tracebacks" +msgstr "" + +#: ../../c-api/exceptions.rst:1304 +msgid "" +"Type object for traceback objects. This is available as :class:`types." +"TracebackType` in the Python layer." +msgstr "" + +#: ../../c-api/exceptions.rst:1310 +msgid "" +"Return true if *op* is a traceback object, false otherwise. This function " +"does not account for subtypes." +msgstr "" + +#: ../../c-api/exceptions.rst:1316 +msgid "" +"Replace the :attr:`~BaseException.__traceback__` attribute on the current " +"exception with a new traceback prepending *f* to the existing chain." +msgstr "" + +#: ../../c-api/exceptions.rst:1319 +msgid "Calling this function without an exception set is undefined behavior." +msgstr "" + +#: ../../c-api/exceptions.rst:1321 ../../c-api/exceptions.rst:1329 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" +"Esta função retorna ``0`` em caso de sucesso e retorna ``-1`` com uma " +"exceção definida em caso de falha." + +#: ../../c-api/exceptions.rst:1327 +msgid "Write the traceback *tb* into the file *f*." +msgstr "" + +#: ../../c-api/exceptions.rst:183 +msgid "strerror (C function)" +msgstr "strerror (função C)" + +#: ../../c-api/exceptions.rst:671 ../../c-api/exceptions.rst:720 +#: ../../c-api/exceptions.rst:735 +msgid "module" +msgstr "módulo" + +#: ../../c-api/exceptions.rst:671 ../../c-api/exceptions.rst:720 +#: ../../c-api/exceptions.rst:735 +msgid "signal" +msgstr "signal" + +#: ../../c-api/exceptions.rst:671 ../../c-api/exceptions.rst:720 +msgid "SIGINT (C macro)" +msgstr "SIGINT (macro C)" + +#: ../../c-api/exceptions.rst:671 ../../c-api/exceptions.rst:720 +#: ../../c-api/exceptions.rst:735 +msgid "KeyboardInterrupt (built-in exception)" +msgstr "KeyboardInterrupt (exceção embutida)" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po new file mode 100644 index 000000000..508445d96 --- /dev/null +++ b/c-api/extension-modules.po @@ -0,0 +1,508 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/extension-modules.rst:6 +msgid "Defining extension modules" +msgstr "Definindo módulos de extensão" + +#: ../../c-api/extension-modules.rst:8 +msgid "" +"A C extension for CPython is a shared library (for example, a ``.so`` file " +"on Linux, ``.pyd`` DLL on Windows), which is loadable into the Python " +"process (for example, it is compiled with compatible compiler settings), and " +"which exports an :ref:`initialization function `." +msgstr "" +"Uma extensão C para CPython é uma biblioteca compartilhada (por exemplo, um " +"arquivo ``.so`` no Linux, uma DLL ``.pyd`` no Windows), que pode ser " +"carregada no processo Python (por exemplo, ela é compilada com configurações " +"de compilador compatíveis) e que exporta uma :ref:`função de inicialização " +"`." + +#: ../../c-api/extension-modules.rst:13 +msgid "" +"To be importable by default (that is, by :py:class:`importlib.machinery." +"ExtensionFileLoader`), the shared library must be available on :py:attr:`sys." +"path`, and must be named after the module name plus an extension listed in :" +"py:attr:`importlib.machinery.EXTENSION_SUFFIXES`." +msgstr "" +"Para ser importável por padrão (ou seja, por :py:class:`importlib.machinery." +"ExtensionFileLoader`), a biblioteca compartilhada deve estar disponível em :" +"py:attr:`sys.path` e deve ser nomeada após o nome do módulo mais uma " +"extensão listada em :py:attr:`importlib.machinery.EXTENSION_SUFFIXES`." + +#: ../../c-api/extension-modules.rst:21 +msgid "" +"Building, packaging and distributing extension modules is best done with " +"third-party tools, and is out of scope of this document. One suitable tool " +"is Setuptools, whose documentation can be found at https://setuptools.pypa." +"io/en/latest/setuptools.html." +msgstr "" +"A construção, o empacotamento e a distribuição de módulos de extensão são " +"melhor realizados com ferramentas de terceiros e estão fora do escopo deste " +"documento. Uma ferramenta adequada é o Setuptools, cuja documentação pode " +"ser encontrada em https://setuptools.pypa.io/en/latest/setuptools.html." + +#: ../../c-api/extension-modules.rst:26 +msgid "" +"Normally, the initialization function returns a module definition " +"initialized using :c:func:`PyModuleDef_Init`. This allows splitting the " +"creation process into several phases:" +msgstr "" +"Normalmente, a função de inicialização retorna uma definição de módulo " +"inicializada usando :c:func:`PyModuleDef_Init`. Isso permite dividir o " +"processo de criação em várias fases:" + +#: ../../c-api/extension-modules.rst:30 +msgid "" +"Before any substantial code is executed, Python can determine which " +"capabilities the module supports, and it can adjust the environment or " +"refuse loading an incompatible extension." +msgstr "" +"Antes que qualquer código substancial seja executado, o Python pode " +"determinar quais recursos o módulo oferece suporte e pode ajustar o ambiente " +"ou se recusar a carregar uma extensão incompatível." + +#: ../../c-api/extension-modules.rst:33 +msgid "" +"By default, Python itself creates the module object -- that is, it does the " +"equivalent of :py:meth:`object.__new__` for classes. It also sets initial " +"attributes like :attr:`~module.__package__` and :attr:`~module.__loader__`." +msgstr "" +"Por padrão, o próprio Python cria o objeto módulo — ou seja, faz o " +"equivalente a :py:meth:`object.__new__` para classes. Ele também define " +"atributos iniciais como :attr:`~module.__package__` e :attr:`~module." +"__loader__`." + +#: ../../c-api/extension-modules.rst:37 +msgid "" +"Afterwards, the module object is initialized using extension-specific code " +"-- the equivalent of :py:meth:`~object.__init__` on classes." +msgstr "" +"Depois, o objeto do módulo é inicializado usando código específico da " +"extensão — o equivalente a :py:meth:`~object.__init__` em classes." + +#: ../../c-api/extension-modules.rst:40 +msgid "" +"This is called *multi-phase initialization* to distinguish it from the " +"legacy (but still supported) *single-phase initialization* scheme, where the " +"initialization function returns a fully constructed module. See the :ref:" +"`single-phase-initialization section below ` " +"for details." +msgstr "" +"Isso é chamado de *inicialização multifásica* para diferenciá-lo do esquema " +"legado (mas ainda suportado) de *inicialização monofásica*, em que a função " +"de inicialização retorna um módulo totalmente construído. Consulte a seção :" +"ref:`inicialização monofásica abaixo ` para " +"obter detalhes." + +#: ../../c-api/extension-modules.rst:48 +msgid "Added support for multi-phase initialization (:pep:`489`)." +msgstr "Adicionado suporte para inicialização multifásica (:pep:`489`)." + +#: ../../c-api/extension-modules.rst:52 +msgid "Multiple module instances" +msgstr "Várias instâncias de módulo" + +#: ../../c-api/extension-modules.rst:54 +msgid "" +"By default, extension modules are not singletons. For example, if the :py:" +"attr:`sys.modules` entry is removed and the module is re-imported, a new " +"module object is created, and typically populated with fresh method and type " +"objects. The old module is subject to normal garbage collection. This " +"mirrors the behavior of pure-Python modules." +msgstr "" +"Por padrão, módulos de extensão não são singletons. Por exemplo, se a " +"entrada :py:attr:`sys.modules` for removida e o módulo for reimportado, um " +"novo objeto de módulo será criado e normalmente preenchido com novos métodos " +"e tipos de objetos. O módulo antigo está sujeito à coleta de lixo normal. " +"Isso reflete o comportamento dos módulos Python puros." + +#: ../../c-api/extension-modules.rst:61 +msgid "" +"Additional module instances may be created in :ref:`sub-interpreters ` or after Python runtime reinitialization (:c:func:" +"`Py_Finalize` and :c:func:`Py_Initialize`). In these cases, sharing Python " +"objects between module instances would likely cause crashes or undefined " +"behavior." +msgstr "" +"Instâncias adicionais do módulo podem ser criadas em :ref:" +"`subinterpretadores ` ou após a reinicialização do " +"tempo de execução do Python (:c:func:`Py_Finalize` e :c:func:" +"`Py_Initialize`). Nesses casos, compartilhar objetos Python entre instâncias " +"do módulo provavelmente causaria travamentos ou comportamento indefinido." + +#: ../../c-api/extension-modules.rst:68 +msgid "" +"To avoid such issues, each instance of an extension module should be " +"*isolated*: changes to one instance should not implicitly affect the others, " +"and all state owned by the module, including references to Python objects, " +"should be specific to a particular module instance. See :ref:`isolating-" +"extensions-howto` for more details and a practical guide." +msgstr "" +"Para evitar tais problemas, cada instância de um módulo de extensão deve ser " +"*isolada*: alterações em uma instância não devem afetar implicitamente as " +"outras, e todos os estados pertencentes ao módulo, incluindo referências a " +"objetos Python, devem ser específicos de uma instância específica do módulo. " +"Consulte :ref:`isolating-extensions-howto` para obter mais detalhes e um " +"guia prático." + +#: ../../c-api/extension-modules.rst:74 +msgid "" +"A simpler way to avoid these issues is :ref:`raising an error on repeated " +"initialization `." +msgstr "" +"Uma maneira mais simples de evitar esses problemas é :ref:`levantar um erro " +"na inicialização repetida `." + +#: ../../c-api/extension-modules.rst:77 +msgid "" +"All modules are expected to support :ref:`sub-interpreters `, or otherwise explicitly signal a lack of support. This is usually " +"achieved by isolation or blocking repeated initialization, as above. A " +"module may also be limited to the main interpreter using the :c:data:" +"`Py_mod_multiple_interpreters` slot." +msgstr "" +"Espera-se que todos os módulos ofereçam suporte a :ref:`subinterpretador " +"`, ou então sinalizem explicitamente a falta de " +"suporte. Isso geralmente é obtido por isolamento ou bloqueio de " +"inicializações repetidas, como acima. Um módulo também pode ser limitado ao " +"interpretador principal usando o slot :c:data:`Py_mod_multiple_interpreters`." + +#: ../../c-api/extension-modules.rst:89 +msgid "Initialization function" +msgstr "Função de inicialização" + +#: ../../c-api/extension-modules.rst:91 +msgid "" +"The initialization function defined by an extension module has the following " +"signature:" +msgstr "" +"A função de inicialização definida por um módulo de extensão tem a seguinte " +"assinatura:" + +#: ../../c-api/extension-modules.rst:96 +msgid "" +"Its name should be :samp:`PyInit_{}`, with ```` replaced by the " +"name of the module." +msgstr "" +"Seu nome deve ser :samp:`PyInit_{}`, com ```` substituído pelo " +"nome do módulo." + +#: ../../c-api/extension-modules.rst:99 +msgid "" +"For modules with ASCII-only names, the function must instead be named :samp:" +"`PyInit_{}`, with ```` replaced by the name of the module. When " +"using :ref:`multi-phase-initialization`, non-ASCII module names are allowed. " +"In this case, the initialization function name is :samp:`PyInitU_{}`, " +"with ```` encoded using Python's *punycode* encoding with hyphens " +"replaced by underscores. In Python:" +msgstr "" +"Para módulos com nomes com somente ASCII, a função deve ser nomeada :samp:" +"`PyInit_{}`, com ```` substituído pelo nome do módulo. Ao usar :" +"ref:`multi-phase-initialization`, nomes de módulos não ASCII são permitidos. " +"Neste caso, o nome da função de inicialização é :samp:`PyInitU_{}`, " +"com ```` codificado usando a codificação *punycode* do Python com " +"hífenes substituídos por sublinhados. Em Python::" + +#: ../../c-api/extension-modules.rst:106 +msgid "" +"def initfunc_name(name):\n" +" try:\n" +" suffix = b'_' + name.encode('ascii')\n" +" except UnicodeEncodeError:\n" +" suffix = b'U_' + name.encode('punycode').replace(b'-', b'_')\n" +" return b'PyInit' + suffix" +msgstr "" +"def nome_func_iniciadora(nome):\n" +" try:\n" +" sufixo = b'_' + nome.encode('ascii')\n" +" except UnicodeEncodeError:\n" +" sufixo = b'U_' + nome.encode('punycode').replace(b'-', b'_')\n" +" return b'PyInit' + sufixo" + +#: ../../c-api/extension-modules.rst:115 +msgid "" +"It is recommended to define the initialization function using a helper macro:" +msgstr "" +"É recomendável definir a função de inicialização usando uma macro auxiliar:" + +#: ../../c-api/extension-modules.rst:119 +msgid "Declare an extension module initialization function. This macro:" +msgstr "Declara uma função de inicialização do módulo de extensão. Esta macro:" + +#: ../../c-api/extension-modules.rst:122 +msgid "specifies the :c:expr:`PyObject*` return type," +msgstr "especifica o tipo de retorno :c:expr:`PyObject*`," + +#: ../../c-api/extension-modules.rst:123 +msgid "adds any special linkage declarations required by the platform, and" +msgstr "" +"adiciona quaisquer declarações de vinculação especiais exigidas pela " +"plataforma e" + +#: ../../c-api/extension-modules.rst:124 +msgid "for C++, declares the function as ``extern \"C\"``." +msgstr "para C++, declara a função como ``extern \"C\"``." + +#: ../../c-api/extension-modules.rst:126 +msgid "For example, a module called ``spam`` would be defined like this::" +msgstr "Por exemplo, um módulo chamado ``spam`` seria definido assim::" + +#: ../../c-api/extension-modules.rst:128 +msgid "" +"static struct PyModuleDef spam_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" ...\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModuleDef_Init(&spam_module);\n" +"}" +msgstr "" +"static struct PyModuleDef spam_module = {\n" +" .m_base = PyModuleDef_HEAD_INIT,\n" +" .m_name = \"spam\",\n" +" ...\n" +"};\n" +"\n" +"PyMODINIT_FUNC\n" +"PyInit_spam(void)\n" +"{\n" +" return PyModuleDef_Init(&spam_module);\n" +"}" + +#: ../../c-api/extension-modules.rst:140 +msgid "" +"It is possible to export multiple modules from a single shared library by " +"defining multiple initialization functions. However, importing them requires " +"using symbolic links or a custom importer, because by default only the " +"function corresponding to the filename is found. See the `Multiple modules " +"in one library `__ section in :pep:`489` for details." +msgstr "" +"É possível exportar vários módulos de uma única biblioteca compartilhada, " +"definindo várias funções de inicialização. No entanto, importá-los requer o " +"uso de links simbólicos ou um importador personalizado, porque por padrão " +"apenas a função correspondente ao nome do arquivo é encontrada. Veja a seção " +"`Multiple modules in one library `__ na :pep:`489` para detalhes." + +#: ../../c-api/extension-modules.rst:147 +msgid "" +"The initialization function is typically the only non-\\ ``static`` item " +"defined in the module's C source." +msgstr "" +"A função de inicialização normalmente é o único item não ``static`` definido " +"no código-fonte C do módulo." + +#: ../../c-api/extension-modules.rst:154 +msgid "Multi-phase initialization" +msgstr "Inicialização multifásica" + +#: ../../c-api/extension-modules.rst:156 +msgid "" +"Normally, the :ref:`initialization function ` " +"(``PyInit_modulename``) returns a :c:type:`PyModuleDef` instance with non-" +"``NULL`` :c:member:`~PyModuleDef.m_slots`. Before it is returned, the " +"``PyModuleDef`` instance must be initialized using the following function:" +msgstr "" +"Normalmente, a :ref:`função de inicialização ` " +"(``PyInit_modulename``) retorna uma instância de :c:type:`PyModuleDef` com :" +"c:member:`~PyModuleDef.m_slots` não ``NULL``. Antes de ser retornada, a " +"instância ``PyModuleDef`` deve ser inicializada usando a seguinte função:" + +#: ../../c-api/extension-modules.rst:165 +msgid "" +"Ensure a module definition is a properly initialized Python object that " +"correctly reports its type and a reference count." +msgstr "" +"Garante que uma definição de módulo é um objeto Python devidamente " +"inicializado que reporta corretamente seu tipo e uma contagem de referências." + +#: ../../c-api/extension-modules.rst:168 +msgid "Return *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." +msgstr "" +"Retorna *def* convertido para ``PyObject*``, ou ``NULL`` se ocorrer um erro." + +#: ../../c-api/extension-modules.rst:170 +msgid "" +"Calling this function is required for :ref:`multi-phase-initialization`. It " +"should not be used in other contexts." +msgstr "" +"A chamada desta função é necessária para :ref:`multi-phase-initialization`. " +"Ela não deve ser usada em outros contextos." + +#: ../../c-api/extension-modules.rst:173 +msgid "" +"Note that Python assumes that ``PyModuleDef`` structures are statically " +"allocated. This function may return either a new reference or a borrowed " +"one; this reference must not be released." +msgstr "" +"Observe que o Python assume que as estruturas ``PyModuleDef`` são alocadas " +"estaticamente. Esta função pode retornar uma nova referência ou uma " +"referência emprestada; esta referência não deve ser liberada." + +#: ../../c-api/extension-modules.rst:184 +msgid "Legacy single-phase initialization" +msgstr "Inicialização monofásica legada" + +#: ../../c-api/extension-modules.rst:187 +msgid "" +"Single-phase initialization is a legacy mechanism to initialize extension " +"modules, with known drawbacks and design flaws. Extension module authors are " +"encouraged to use multi-phase initialization instead." +msgstr "" +"A inicialização monofásica é um mecanismo legado para inicializar módulos de " +"extensão, com desvantagens e falhas de projeto conhecidas. Os autores de " +"módulos de extensão são incentivados a utilizar a inicialização multifásica." + +#: ../../c-api/extension-modules.rst:191 +msgid "" +"In single-phase initialization, the :ref:`initialization function ` (``PyInit_modulename``) should create, populate and return a " +"module object. This is typically done using :c:func:`PyModule_Create` and " +"functions like :c:func:`PyModule_AddObjectRef`." +msgstr "" +"Na inicialização monofásica, a :ref:`função de inicialização ` (``PyInit_modulename``) deve criar, preencher e retornar um " +"objeto de módulo. Isso normalmente é feito usando :c:func:`PyModule_Create` " +"e funções como :c:func:`PyModule_AddObjectRef`." + +#: ../../c-api/extension-modules.rst:197 +msgid "" +"Single-phase initialization differs from the :ref:`default ` in the following ways:" +msgstr "" +"A inicialização monofásica difere do :ref:`padrão ` nas seguintes maneiras:" + +#: ../../c-api/extension-modules.rst:200 +msgid "Single-phase modules are, or rather *contain*, “singletons”." +msgstr "Módulos monofásicos são, ou melhor, *contêm*, “singletons”." + +#: ../../c-api/extension-modules.rst:202 +msgid "" +"When the module is first initialized, Python saves the contents of the " +"module's ``__dict__`` (that is, typically, the module's functions and types)." +msgstr "" +"Quando o módulo é inicializado pela primeira vez, o Python salva o conteúdo " +"do ``__dict__`` do módulo (ou seja, normalmente, as funções e os tipos do " +"módulo)." + +#: ../../c-api/extension-modules.rst:206 +msgid "" +"For subsequent imports, Python does not call the initialization function " +"again. Instead, it creates a new module object with a new ``__dict__``, and " +"copies the saved contents to it. For example, given a single-phase module " +"``_testsinglephase`` [#testsinglephase]_ that defines a function ``sum`` and " +"an exception class ``error``:" +msgstr "" +"Para importações subsequentes, o Python não chama a função de inicialização " +"novamente. Em vez disso, ele cria um novo objeto de módulo com um novo " +"``__dict__`` e copia o conteúdo salvo para ele. Por exemplo, dado um módulo " +"monofásico ``_testsinglephase`` [#testsinglephase]_ que define uma função " +"``sum`` e uma classe de exceção ``error``:" + +#: ../../c-api/extension-modules.rst:214 +msgid "" +">>> import sys\n" +">>> import _testsinglephase as one\n" +">>> del sys.modules['_testsinglephase']\n" +">>> import _testsinglephase as two\n" +">>> one is two\n" +"False\n" +">>> one.__dict__ is two.__dict__\n" +"False\n" +">>> one.sum is two.sum\n" +"True\n" +">>> one.error is two.error\n" +"True" +msgstr "" +">>> import sys\n" +">>> import _testsinglephase as one\n" +">>> del sys.modules['_testsinglephase']\n" +">>> import _testsinglephase as two\n" +">>> one is two\n" +"False\n" +">>> one.__dict__ is two.__dict__\n" +"False\n" +">>> one.sum is two.sum\n" +"True\n" +">>> one.error is two.error\n" +"True" + +#: ../../c-api/extension-modules.rst:229 +msgid "" +"The exact behavior should be considered a CPython implementation detail." +msgstr "" +"O comportamento exato deve ser considerado um detalhe da implementação do " +"CPython." + +#: ../../c-api/extension-modules.rst:231 +msgid "" +"To work around the fact that ``PyInit_modulename`` does not take a *spec* " +"argument, some state of the import machinery is saved and applied to the " +"first suitable module created during the ``PyInit_modulename`` call. " +"Specifically, when a sub-module is imported, this mechanism prepends the " +"parent package name to the name of the module." +msgstr "" +"Para contornar o fato de que ``PyInit_modulename`` não aceita um argumento " +"*spec*, parte do estado do mecanismo de importação é salvo e aplicado ao " +"primeiro módulo adequado criado durante a chamada ``PyInit_modulename``. " +"Especificamente, quando um submódulo é importado, esse mecanismo adiciona o " +"nome do pacote pai ao nome do módulo." + +#: ../../c-api/extension-modules.rst:237 +msgid "" +"A single-phase ``PyInit_modulename`` function should create “its” module " +"object as soon as possible, before any other module objects can be created." +msgstr "" +"Uma função monofásica ``PyInit_modulename`` deve criar “seu” objeto de " +"módulo o mais rápido possível, antes que qualquer outro objeto de módulo " +"possa ser criado." + +#: ../../c-api/extension-modules.rst:240 +msgid "Non-ASCII module names (``PyInitU_modulename``) are not supported." +msgstr "" +"Nomes de módulos não ASCII (``PyInitU_modulename``) não são suportados." + +#: ../../c-api/extension-modules.rst:242 +msgid "" +"Single-phase modules support module lookup functions like :c:func:" +"`PyState_FindModule`." +msgstr "" +"Módulos monofásicos oferecem suporte a funções de pesquisa de módulos como :" +"c:func:`PyState_FindModule`." + +#: ../../c-api/extension-modules.rst:245 +msgid "" +"``_testsinglephase`` is an internal module used in CPython's self-test " +"suite; your installation may or may not include it." +msgstr "" +"``_testsinglephase`` é um módulo interno usado no conjunto de autotestes do " +"CPython; sua instalação pode ou não incluí-lo." diff --git a/c-api/file.po b/c-api/file.po new file mode 100644 index 000000000..1024e9614 --- /dev/null +++ b/c-api/file.po @@ -0,0 +1,274 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/file.rst:6 +msgid "File objects" +msgstr "" + +#: ../../c-api/file.rst:10 +msgid "" +"These APIs are a minimal emulation of the Python 2 C API for built-in file " +"objects, which used to rely on the buffered I/O (:c:expr:`FILE*`) support " +"from the C standard library. In Python 3, files and streams use the new :" +"mod:`io` module, which defines several layers over the low-level unbuffered " +"I/O of the operating system. The functions described below are convenience " +"C wrappers over these new APIs, and meant mostly for internal error " +"reporting in the interpreter; third-party code is advised to access the :mod:" +"`io` APIs instead." +msgstr "" +"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 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 "" +"Create a Python file object from the file descriptor of an already opened " +"file *fd*. The arguments *name*, *encoding*, *errors* and *newline* can be " +"``NULL`` to use the defaults; *buffering* can be *-1* to use the default. " +"*name* is ignored and kept for backward compatibility. Return ``NULL`` on " +"failure. For a more comprehensive description of the arguments, please refer " +"to the :func:`io.open` function documentation." +msgstr "" +"Cria um objeto arquivo Python a partir do descritor de arquivo de um arquivo " +"já aberto *fd*. Os argumentos *name*, *encoding*, *errors* and *newline* " +"podem ser ``NULL`` para usar os padrões; *buffering* pode ser *-1* para usar " +"o padrão. *name* é ignorado e mantido para compatibilidade com versões " +"anteriores. Retorna ``NULL`` em caso de falha. Para uma descrição mais " +"abrangente dos argumentos, consulte a documentação da função :func:`io.open`." + +#: ../../c-api/file.rst:31 +msgid "" +"Since Python streams have their own buffering layer, mixing them with OS-" +"level file descriptors can produce various issues (such as unexpected " +"ordering of data)." +msgstr "" +"Como os streams do Python têm sua própria camada de buffer, combiná-los com " +"os descritores de arquivo no nível do sistema operacional pode produzir " +"vários problemas (como ordenação inesperada de dados)." + +#: ../../c-api/file.rst:35 +msgid "Ignore *name* attribute." +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." +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." + +#: ../../c-api/file.rst:52 +msgid "" +"Equivalent to ``p.readline([n])``, this function reads one line from the " +"object *p*. *p* may be a file object or any object with a :meth:`~io.IOBase." +"readline` method. If *n* is ``0``, exactly one line is read, regardless of " +"the length of the line. If *n* is greater than ``0``, no more than *n* " +"bytes will be read from the file; a partial line can be returned. In both " +"cases, an empty string is returned if the end of the file is reached " +"immediately. If *n* is less than ``0``, however, one line is read " +"regardless of length, but :exc:`EOFError` is raised if the end of the file " +"is reached immediately." +msgstr "" +"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 " +"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` é " +"levantada se o final do arquivo for alcançado imediatamente." + +#: ../../c-api/file.rst:65 +msgid "" +"Overrides the normal behavior of :func:`io.open_code` to pass its parameter " +"through the provided handler." +msgstr "" +"Substitui o comportamento normal de :func:`io.open_code` para passar seu " +"parâmetro por meio do manipulador fornecido." + +#: ../../c-api/file.rst:68 +msgid "The *handler* is a function of type:" +msgstr "O *handler* é uma função do tipo:" + +#: ../../c-api/file.rst:73 +msgid "" +"Equivalent of :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " +"where *path* is guaranteed to be :c:type:`PyUnicodeObject`." +msgstr "" +"Equivalente de :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " +"sendo *path* garantido como sendo :c:type:`PyUnicodeObject`." + +#: ../../c-api/file.rst:77 +msgid "" +"The *userData* pointer is passed into the hook function. Since hook " +"functions may be called from different runtimes, this pointer should not " +"refer directly to Python state." +msgstr "" +"O ponteiro *userData* é passado para a função de gancho. Como as funções de " +"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:81 +msgid "" +"As this hook is intentionally used during import, avoid importing new " +"modules during its execution unless they are known to be frozen or available " +"in ``sys.modules``." +msgstr "" +"Como este gancho é usado intencionalmente durante a importação, evite " +"importar novos módulos durante sua execução, a menos que eles estejam " +"congelados ou disponíveis em ``sys.modules``." + +#: ../../c-api/file.rst:85 +msgid "" +"Once a hook has been set, it cannot be removed or replaced, and later calls " +"to :c:func:`PyFile_SetOpenCodeHook` will fail. On failure, the function " +"returns -1 and sets an exception if the interpreter has been initialized." +msgstr "" +"Uma vez que um gancho foi definido, ele não pode ser removido ou " +"substituído, e chamadas posteriores para :c:func:`PyFile_SetOpenCodeHook` " +"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: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:91 +msgid "" +"Raises an :ref:`auditing event ` ``setopencodehook`` with no " +"arguments." +msgstr "" +"Levanta um :ref:`evento de auditoria` ``setopencodehook`` sem " +"argumentos." + +#: ../../c-api/file.rst:98 +msgid "" +"Open *path* with the mode ``'rb'``. *path* must be a Python :class:`str` " +"object. The behavior of this function may be overridden by :c:func:" +"`PyFile_SetOpenCodeHook` to allow for some preprocessing of the text." +msgstr "" +"Abre o arquivo *path* com o modo ``'rb'``. *path* deve ser um objeto Python " +"da classe :class:`str`. O comportamento desta função pode ser substituído " +"por :c:func:`PyFile_SetOpenCodeHook` para permitir algum pré-processamento " +"do texto." + +#: ../../c-api/file.rst:103 +msgid "This is analogous to :func:`io.open_code` in Python." +msgstr "Isso é análogo a :func:`io.open_code` no Python." + +#: ../../c-api/file.rst:105 +msgid "" +"On success, this function returns a :term:`strong reference` to a Python " +"file object. On failure, this function returns ``NULL`` with an exception " +"set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` a um " +"objeto arquivo Python. Em caso de falha, esta função retorna ``NULL`` com " +"uma exceção definida." + +#: ../../c-api/file.rst:114 +msgid "" +"Similar to :c:func:`PyFile_OpenCodeObject`, but *path* is a UTF-8 encoded :c:" +"expr:`const char*`." +msgstr "" +"Semelhante a :c:func:`PyFile_OpenCodeObject`, mas *path* é um :c:expr:`const " +"char*` codificado em UTF-8." + +#: ../../c-api/file.rst:124 +msgid "" +"Write object *obj* to file object *p*. The only supported flag for *flags* " +"is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is " +"written instead of the :func:`repr`." +msgstr "" + +#: ../../c-api/file.rst:128 +msgid "If *obj* is ``NULL``, write the string ``\"\"``." +msgstr "" + +#: ../../c-api/file.rst:130 +msgid "" +"Return ``0`` on success or ``-1`` on failure; the appropriate exception will " +"be set." +msgstr "" + +#: ../../c-api/file.rst:135 +msgid "" +"Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " +"failure; the appropriate exception will be set." +msgstr "" +"Escreve a string *s* no objeto arquivo *p*. Retorna ``0`` em caso de sucesso " +"ou ``-1`` em caso de falha; a exceção apropriada será definida." + +#: ../../c-api/file.rst:140 +msgid "Soft-deprecated API" +msgstr "" + +#: ../../c-api/file.rst:144 +msgid "" +"These are APIs that were included in Python's C API by mistake. They are " +"documented solely for completeness; use other ``PyFile*`` APIs instead." +msgstr "" + +#: ../../c-api/file.rst:150 +msgid "" +"Use :c:func:`PyFile_FromFd` with defaults (``fd, NULL, \"w\", -1, NULL, " +"NULL, NULL, 0``) instead." +msgstr "" + +#: ../../c-api/file.rst:154 +msgid "" +"Type of file-like objects used internally at Python startup when :py:mod:" +"`io` is not yet available. Use Python :py:func:`open` or :c:func:" +"`PyFile_FromFd` to create file objects instead." +msgstr "" + +#: ../../c-api/file.rst:8 +msgid "object" +msgstr "objeto" + +#: ../../c-api/file.rst:8 +msgid "file" +msgstr "arquivo" + +#: ../../c-api/file.rst:50 +msgid "EOFError (built-in exception)" +msgstr "EOFError (exceção embutida)" + +#: ../../c-api/file.rst:122 +msgid "Py_PRINT_RAW (C macro)" +msgstr "Py_PRINT_RAW (macro C)" diff --git a/c-api/float.po b/c-api/float.po new file mode 100644 index 000000000..84042b8e2 --- /dev/null +++ b/c-api/float.po @@ -0,0 +1,437 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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" +msgstr "Objetos de ponto flutuante" + +#: ../../c-api/float.rst:13 +msgid "" +"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 " +"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 " +"flutuante do Python. Este é o mesmo objeto :class:`float` na camada do " +"Python." + +#: ../../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." +msgstr "" +"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 "" +"Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " +"of :c:type:`PyFloatObject`. This function always succeeds." +msgstr "" +"Retorna true se seu argumento é um :c:type:`PyFloatObject`, mas um subtipo " +"de :c:type:`PyFloatObject`. Esta função sempre tem sucesso." + +#: ../../c-api/float.rst:36 +msgid "" +"Create a :c:type:`PyFloatObject` object based on the string value in *str*, " +"or ``NULL`` on failure." +msgstr "" +"Cria um objeto :c:type:`PyFloatObject` baseado em uma string de valor " +"\"str\" ou ``NULL`` em falha." + +#: ../../c-api/float.rst:42 +msgid "" +"Create a :c:type:`PyFloatObject` object from *v*, or ``NULL`` on failure." +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." +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:`__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." +msgstr "Usa :meth:`~object.__index__`, se disponível." + +#: ../../c-api/float.rst:60 +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 "" +"Return a structseq instance which contains information about the precision, " +"minimum and maximum values of a float. It's a thin wrapper around the header " +"file :file:`float.h`." +msgstr "" +"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 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`." +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:83 +msgid "" +"This macro expands to a constant expression of type :c:expr:`double`, that " +"represents the positive infinity." +msgstr "" + +#: ../../c-api/float.rst:86 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!INFINITY` macro from " +"the C11 standard ```` header." +msgstr "" +"Na maioria das plataformas, isso equivale à macro :c:macro:`!INFINITY` do " +"cabeçalho ```` do padrão C11." + +#: ../../c-api/float.rst:92 +msgid "" +"This macro expands to a constant expression of type :c:expr:`double`, that " +"represents a quiet not-a-number (qNaN) value." +msgstr "" + +#: ../../c-api/float.rst:95 +msgid "" +"On most platforms, this is equivalent to the :c:macro:`!NAN` macro from the " +"C11 standard ```` header." +msgstr "" +"Na maioria das plataformas, isso equivale à macro :c:macro:`!NAN` do " +"cabeçalho ```` do padrão C11." + +#: ../../c-api/float.rst:101 +msgid "Equivalent to :c:macro:`!INFINITY`." +msgstr "Equivalente a :c:macro:`!INFINITY`." + +#: ../../c-api/float.rst:103 +msgid "The macro is :term:`soft deprecated`." +msgstr "" +"A macro está :term:`suavemente descontinuada `." + +#: ../../c-api/float.rst:109 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.e` " +"constant." +msgstr "" +"A definição (precisa para um tipo :c:expr:`double`) da constante :data:`math." +"e`." + +#: ../../c-api/float.rst:114 +msgid "High precision (long double) definition of :data:`~math.e` constant." +msgstr "Definição de alta precisão (long double) da constante :data:`~math.e`." + +#: ../../c-api/float.rst:119 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math.pi` " +"constant." +msgstr "" +"A definição (precisa para um tipo :c:expr:`double`) da constante :data:`math." +"pi`." + +#: ../../c-api/float.rst:124 +msgid "High precision (long double) definition of :data:`~math.pi` constant." +msgstr "" +"Definição de alta precisão (long double) da constante :data:`~math.pi`." + +#: ../../c-api/float.rst:129 +msgid "" +"The definition (accurate for a :c:expr:`double` type) of the :data:`math." +"tau` constant." +msgstr "" +"A definição (precisa para um tipo :c:expr:`double`) da constante :data:`math." +"tau`." + +#: ../../c-api/float.rst:136 +msgid "Return :data:`math.nan` from a function." +msgstr "Retorna :data:`math.nan` de uma função." + +#: ../../c-api/float.rst:138 +msgid "" +"On most platforms, this is equivalent to ``return PyFloat_FromDouble(NAN)``." +msgstr "" +"Na maioria das plataformas, isso equivale a ``return " +"PyFloat_FromDouble(NAN)``." + +#: ../../c-api/float.rst:143 +msgid "" +"Return :data:`math.inf` or :data:`-math.inf ` from a function, " +"depending on the sign of *sign*." +msgstr "" +"Retorna :data:`math.inf` ou :data:`-math.inf ` de uma função, " +"dependendo do sinal de *sign*." + +#: ../../c-api/float.rst:146 +msgid "On most platforms, this is equivalent to the following::" +msgstr "Na maioria das plataformas, isso equivale ao seguinte::" + +#: ../../c-api/float.rst:148 +msgid "return PyFloat_FromDouble(copysign(INFINITY, sign));" +msgstr "return PyFloat_FromDouble(copysign(INFINITY, sign));" + +#: ../../c-api/float.rst:153 +msgid "" +"Return ``1`` if the given floating-point number *X* is finite, that is, it " +"is normal, subnormal or zero, but not infinite or NaN. Return ``0`` " +"otherwise." +msgstr "" +"Retorna ``1`` se o número de ponto flutuante *X* fornecido for finito, ou " +"seja, for normal, subnormal ou zero, mas não infinito ou NaN. Caso " +"contrário, retorna ``0``." + +#: ../../c-api/float.rst:157 +msgid "" +"The macro is :term:`soft deprecated`. Use :c:macro:`!isfinite` instead." +msgstr "" +"A macro está :term:`suavemente descontinuada `. " +"Use :c:macro:`!isfinite` em vez disso." + +#: ../../c-api/float.rst:163 +msgid "" +"Return ``1`` if the given floating-point number *X* is positive or negative " +"infinity. Return ``0`` otherwise." +msgstr "" +"Retorna ``1`` se o número de ponto flutuante *X* fornecido for infinito " +"positivo ou negativo. Caso contrário, retorna ``0``." + +#: ../../c-api/float.rst:166 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isinf` instead." +msgstr "" +"A macro está :term:`suavemente descontinuada `. " +"Use :c:macro:`!isinf` em vez disso." + +#: ../../c-api/float.rst:172 +msgid "" +"Return ``1`` if the given floating-point number *X* is a not-a-number (NaN) " +"value. Return ``0`` otherwise." +msgstr "" +"Retorna ``1`` se o número de ponto flutuante fornecido *X* for um valor não " +"numérico (NaN). Caso contrário, retorna ``0``." + +#: ../../c-api/float.rst:175 +msgid "The macro is :term:`soft deprecated`. Use :c:macro:`!isnan` instead." +msgstr "" +"A macro está :term:`suavemente descontinuada `. " +"Use :c:macro:`!isnan` em vez disso." + +#: ../../c-api/float.rst:180 +msgid "Pack and Unpack functions" +msgstr "As funções Pack e Unpack" + +#: ../../c-api/float.rst:182 +msgid "" +"The pack and unpack functions provide an efficient platform-independent way " +"to store floating-point values as byte strings. The Pack routines produce a " +"bytes string from a C :c:expr:`double`, and the Unpack routines produce a C :" +"c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) specifies " +"the number of bytes in the bytes string." +msgstr "" +"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:188 +msgid "" +"On platforms that appear to use IEEE 754 formats these functions work by " +"copying bits. On other platforms, the 2-byte format is identical to the IEEE " +"754 binary16 half-precision format, the 4-byte format (32-bit) is identical " +"to the IEEE 754 binary32 single precision format, and the 8-byte format to " +"the IEEE 754 binary64 double precision format, although the packing of INFs " +"and NaNs (if such things exist on the platform) isn't handled correctly, and " +"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:197 +msgid "" +"Note that NaN type may not be preserved on IEEE platforms (signaling NaNs " +"become quiet NaNs), for example on x86 systems in 32-bit mode." +msgstr "" + +#: ../../c-api/float.rst:200 +msgid "" +"On non-IEEE platforms with more precision, or larger dynamic range, than " +"IEEE 754 supports, not all values can be packed; on non-IEEE platforms with " +"less precision, or smaller dynamic range, not all values can be unpacked. " +"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:208 +msgid "Pack functions" +msgstr "Funções Pack" + +#: ../../c-api/float.rst:210 +msgid "" +"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:" +"`int` argument, non-zero if you want the bytes string in little-endian " +"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if " +"you want big-endian format (exponent first, at *p*). 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 "" + +#: ../../c-api/float.rst:217 +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:220 +msgid "There are two problems on non-IEEE platforms:" +msgstr "Existem dois problemas em plataformas não IEEE:" + +#: ../../c-api/float.rst:222 +msgid "What this does is undefined if *x* is a NaN or infinity." +msgstr "O que isso faz é indefinido se *x* é um NaN ou infinito." + +#: ../../c-api/float.rst:223 +msgid "``-0.0`` and ``+0.0`` produce the same bytes string." +msgstr "``-0.0`` e ``+0.0`` produzem a mesma sequência de bytes." + +#: ../../c-api/float.rst:227 +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:231 +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:235 +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:239 +msgid "Unpack functions" +msgstr "Funções de Unpack" + +#: ../../c-api/float.rst:241 +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 " +"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:248 +msgid "" +"Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:" +"`PyErr_Occurred` is true (and an exception is set, most likely :exc:" +"`OverflowError`)." +msgstr "" +"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:252 +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:257 +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:261 +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:265 +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" +msgstr "ponto flutuante" diff --git a/c-api/frame.po b/c-api/frame.po new file mode 100644 index 000000000..c0a3144db --- /dev/null +++ b/c-api/frame.po @@ -0,0 +1,302 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/frame.rst:4 +msgid "Frame objects" +msgstr "Objetos quadro" + +#: ../../c-api/frame.rst:8 +msgid "The C structure of the objects used to describe frame objects." +msgstr "A estrutura C dos objetos usados para descrever objetos frame." + +#: ../../c-api/frame.rst:10 +msgid "There are no public members in this structure." +msgstr "Não há membros públicos nesta estrutura." + +#: ../../c-api/frame.rst:12 +msgid "" +"The members of this structure were removed from the public C API. Refer to " +"the :ref:`What's New entry ` for details." +msgstr "" +"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 "" +"The :c:func:`PyEval_GetFrame` and :c:func:`PyThreadState_GetFrame` functions " +"can be used to get a frame object." +msgstr "" +"As funções :c:func:`PyEval_GetFrame` e :c:func:`PyThreadState_GetFrame` " +"podem ser utilizadas para obter um objeto frame." + +#: ../../c-api/frame.rst:20 +msgid "See also :ref:`Reflection `." +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." +msgstr "" +"O tipo de objetos frame. É o mesmo objeto que :py:class:`types.FrameType` na " +"camada Python." + +#: ../../c-api/frame.rst:29 +msgid "" +"Previously, this type was only available after including ````." +msgstr "" +"Anteriormente, este tipo só estava disponível após incluir ````." + +#: ../../c-api/frame.rst:34 +msgid "" +"Create a new frame object. This function returns a :term:`strong reference` " +"to the new frame object on success, and returns ``NULL`` with an exception " +"set on failure." +msgstr "" +"Cria um novo objeto quadro. Esta função retorna uma :term:`referência forte` " +"ao novo objeto quadro em caso de sucesso e retorna ``NULL`` com uma exceção " +"definida em caso de falha." + +#: ../../c-api/frame.rst:40 +msgid "Return non-zero if *obj* is a frame object." +msgstr "Retorna diferente de zero se *obj* é um objeto frame" + +#: ../../c-api/frame.rst:44 +msgid "" +"Previously, this function was only available after including ````." +msgstr "" +"Anteriormente, esta função só estava disponível após incluir ````." + +#: ../../c-api/frame.rst:49 +msgid "Get the *frame* next outer frame." +msgstr "Obtém o *frame* próximo ao quadro externo." + +#: ../../c-api/frame.rst:51 +msgid "" +"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer " +"frame. This raises no exceptions." +msgstr "" + +#: ../../c-api/frame.rst:60 +msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." +msgstr "Obtém o atributo :attr:`~frame.f_builtins` do *frame*." + +#: ../../c-api/frame.rst:62 ../../c-api/frame.rst:93 +msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." +msgstr "" +"Retorna uma :term:`referência forte`. O resultado não pode ser ``NULL``." + +#: ../../c-api/frame.rst:69 +msgid "Get the *frame* code." +msgstr "Obtém o código de *frame*." + +#: ../../c-api/frame.rst:71 ../../c-api/frame.rst:137 +msgid "Return a :term:`strong reference`." +msgstr "Retorna uma :term:`referência forte`." + +#: ../../c-api/frame.rst:73 +msgid "The result (frame code) cannot be ``NULL``." +msgstr "O resultado (código do frame) não pode ser ``NULL``." + +#: ../../c-api/frame.rst:80 +msgid "" +"Get the generator, coroutine, or async generator that owns this frame, or " +"``NULL`` if this frame is not owned by a generator. Does not raise an " +"exception, even if the return value is ``NULL``." +msgstr "" +"Obtém o gerador, corrotina ou gerador assíncrono que possui este frame, ou " +"``NULL`` se o frame não pertence a um gerador. Não levanta exceção, mesmo " +"que o valor retornado seja ``NULL``." + +#: ../../c-api/frame.rst:84 +msgid "Return a :term:`strong reference`, or ``NULL``." +msgstr "Retorna uma :term:`referência forte`, ou ``NULL``." + +#: ../../c-api/frame.rst:91 +msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." +msgstr "Obtenha o atributo :attr:`~frame.f_globals` do *frame*." + +#: ../../c-api/frame.rst:100 +msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." +msgstr "Obtenha o atributo :attr:`~frame.f_lasti` do *frame*." + +#: ../../c-api/frame.rst:102 +msgid "Returns -1 if ``frame.f_lasti`` is ``None``." +msgstr "Retorna -1 se ``frame.f_lasti`` é ``None``." + +#: ../../c-api/frame.rst:109 +msgid "Get the variable *name* of *frame*." +msgstr "Obtém a variável *name* de *frame*." + +#: ../../c-api/frame.rst:111 +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:112 +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:113 +msgid "Raise an exception and return ``NULL`` on error." +msgstr "Levanta uma exceção e retorna ``NULL`` em caso de erro." + +#: ../../c-api/frame.rst:115 +msgid "*name* type must be a :class:`str`." +msgstr "Tipo de *name* deve ser um :class:`str`." + +#: ../../c-api/frame.rst:122 +msgid "" +"Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " +"encoded in UTF-8." +msgstr "" +"Semelhante a :c:func:`PyFrame_GetVar`, mas o nome da variável é uma string C " +"codificada em UTF-8." + +#: ../../c-api/frame.rst:130 +msgid "" +"Get the *frame*'s :attr:`~frame.f_locals` attribute. If the frame refers to " +"an :term:`optimized scope`, this returns a write-through proxy object that " +"allows modifying the locals. In all other cases (classes, modules, :func:" +"`exec`, :func:`eval`) it returns the mapping representing the frame locals " +"directly (as described for :func:`locals`)." +msgstr "" +"Obtém o atributo :attr:`~frame.f_locals` do *frame*. Se o quadro se referir " +"a um :term:`escopo otimizado`, isso retorna um objeto proxy de escrita " +"direta que permite modificar as variáveis locais. Em todos os outros casos " +"(classes, módulos, :func:`exec` e :func:`eval`), retorna o mapeamento que " +"representa as variáveis locais do frame diretamente (como descrito para :" +"func:`locals`)." + +#: ../../c-api/frame.rst:141 +msgid "" +"As part of :pep:`667`, return an instance of :c:var:" +"`PyFrameLocalsProxy_Type`." +msgstr "" +"Como parte de :pep:`667`, retorna uma instância de :c:var:" +"`PyFrameLocalsProxy_Type`." + +#: ../../c-api/frame.rst:147 +msgid "Return the line number that *frame* is currently executing." +msgstr "Retorna o número da linha do *frame* atualmente em execução." + +#: ../../c-api/frame.rst:151 +msgid "Frame locals proxies" +msgstr "" + +#: ../../c-api/frame.rst:155 +msgid "" +"The :attr:`~frame.f_locals` attribute on a :ref:`frame object ` is an instance of a \"frame-locals proxy\". The proxy object " +"exposes a write-through view of the underlying locals dictionary for the " +"frame. This ensures that the variables exposed by ``f_locals`` are always up " +"to date with the live local variables in the frame itself." +msgstr "" + +#: ../../c-api/frame.rst:161 +msgid "See :pep:`667` for more information." +msgstr "" + +#: ../../c-api/frame.rst:165 +msgid "The type of frame :func:`locals` proxy objects." +msgstr "" + +#: ../../c-api/frame.rst:169 +msgid "Return non-zero if *obj* is a frame :func:`locals` proxy." +msgstr "" + +#: ../../c-api/frame.rst:173 +msgid "Legacy local variable APIs" +msgstr "" + +#: ../../c-api/frame.rst:175 +msgid "" +"These APIs are :term:`soft deprecated`. As of Python 3.13, they do nothing. " +"They exist solely for backwards compatibility." +msgstr "" + +#: ../../c-api/frame.rst:181 +msgid "" +"Prior to Python 3.13, this function would copy the :attr:`~frame.f_locals` " +"attribute of *f* to the internal \"fast\" array of local variables, allowing " +"changes in frame objects to be visible to the interpreter. If *clear* was " +"true, this function would process variables that were unset in the locals " +"dictionary." +msgstr "" + +#: ../../c-api/frame.rst:187 ../../c-api/frame.rst:198 +#: ../../c-api/frame.rst:208 +msgid "This function now does nothing." +msgstr "Esta função agora não faz nada." + +#: ../../c-api/frame.rst:193 +msgid "" +"Prior to Python 3.13, this function would copy the internal \"fast\" array " +"of local variables (which is used by the interpreter) to the :attr:`~frame." +"f_locals` attribute of *f*, allowing changes in local variables to be " +"visible to frame objects." +msgstr "" + +#: ../../c-api/frame.rst:204 +msgid "" +"Prior to Python 3.13, this function was similar to :c:func:" +"`PyFrame_FastToLocals`, but would return ``0`` on success, and ``-1`` with " +"an exception set on failure." +msgstr "" + +#: ../../c-api/frame.rst:213 +msgid ":pep:`667`" +msgstr ":pep:`667`" + +#: ../../c-api/frame.rst:217 +msgid "Internal frames" +msgstr "" + +#: ../../c-api/frame.rst:219 +msgid "Unless using :pep:`523`, you will not need this." +msgstr "" + +#: ../../c-api/frame.rst:223 +msgid "The interpreter's internal frame representation." +msgstr "" + +#: ../../c-api/frame.rst:229 +msgid "Return a :term:`strong reference` to the code object for the frame." +msgstr "" + +#: ../../c-api/frame.rst:236 +msgid "Return the byte offset into the last executed instruction." +msgstr "" + +#: ../../c-api/frame.rst:243 +msgid "" +"Return the currently executing line number, or -1 if there is no line number." +msgstr "" diff --git a/c-api/function.po b/c-api/function.po new file mode 100644 index 000000000..cb7067c31 --- /dev/null +++ b/c-api/function.po @@ -0,0 +1,358 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"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 Function" + +#: ../../c-api/function.rst:10 +msgid "There are a few functions specific to Python functions." +msgstr "Existem algumas funções específicas para as funções do Python." + +#: ../../c-api/function.rst:15 +msgid "The C structure used for functions." +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``." +msgstr "" +"Esta é uma instância de :c:type:`PyTypeObject` e representa o tipo de função " +"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." +msgstr "" +"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 "" +"Return a new function object associated with the code object *code*. " +"*globals* must be a dictionary with the global variables accessible to the " +"function." +msgstr "" +"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." +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." +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 código associado ao objeto função *op*." + +#: ../../c-api/function.rst:62 +msgid "Return the globals dictionary associated with the function object *op*." +msgstr "Retorna o dicionário global associado ao objeto função *op*." + +#: ../../c-api/function.rst:67 +msgid "" +"Return a :term:`borrowed reference` to the :attr:`~function.__module__` " +"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 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 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:125 +#: ../../c-api/function.rst:139 +msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." +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 "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:101 +msgid "" +"Return the keyword-only argument default values of the function object *op*. " +"This can be a dictionary of arguments or ``NULL``." +msgstr "" +"Retorna os valores-padrão de argumentos somente-nomeados do objeto função " +"*op*. Pode ser um dicionário de argumentos ou ``NULL``." + +#: ../../c-api/function.rst:107 +msgid "" +"Set the keyword-only argument default values of the function object *op*. " +"*defaults* must be a dictionary of keyword-only arguments or ``Py_None``." +msgstr "" +"Define os valores padrão dos argumentos somente-nomeados do objeto função " +"*op*. *defaults* deve ser um dicionário de argumentos somente-nomeados ou " +"``Py_None``." + +#: ../../c-api/function.rst:110 +msgid "" +"This function returns ``0`` on success, and returns ``-1`` with an exception " +"set on failure." +msgstr "" +"Esta função retorna ``0`` em caso de sucesso e retorna ``-1`` com uma " +"exceção definida em caso de falha." + +#: ../../c-api/function.rst:116 +msgid "" +"Return the closure associated with the function object *op*. This can be " +"``NULL`` or a tuple of cell objects." +msgstr "" +"Retorna o fechamento associado ao objeto função *op*. Pode ser ``NULL`` ou " +"uma tupla de objetos célula." + +#: ../../c-api/function.rst:122 +msgid "" +"Set the closure associated with the function object *op*. *closure* must be " +"``Py_None`` or a tuple of cell objects." +msgstr "" +"Define o fechamento associado ao objeto função *op*. *closure* deve ser " +"``Py_None`` ou uma tupla de objetos de célula." + +#: ../../c-api/function.rst:130 +msgid "" +"Return the annotations of the function object *op*. This can be a mutable " +"dictionary or ``NULL``." +msgstr "" +"Retorna as anotações do objeto função *op*. Este pode ser um dicionário " +"mutável ou ``NULL``." + +#: ../../c-api/function.rst:136 +msgid "" +"Set the annotations for the function object *op*. *annotations* must be a " +"dictionary or ``Py_None``." +msgstr "" +"Define as anotações para o objeto função *op*. *annotations* deve ser um " +"dicionário ou ``Py_None``." + +#: ../../c-api/function.rst:150 +msgid "" +"These functions are similar to their ``PyFunction_Get*`` counterparts, but " +"do not do type checking. Passing anything other than an instance of :c:data:" +"`PyFunction_Type` is undefined behavior." +msgstr "" +"Essas funções são semelhantes às suas contrapartes ``PyFunction_Get*``, mas " +"não realizam verificação de tipos. Passar qualquer coisa que não seja uma " +"instância de :c:data:`PyFunction_Type` é um comportamento indefinido." + +#: ../../c-api/function.rst:157 +msgid "" +"Register *callback* as a function watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " +"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" +"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:167 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyFunction_AddWatcher` for the current interpreter. Return ``0`` on " +"success, or ``-1`` and set an exception on error (e.g. if the given " +"*watcher_id* was never registered.)" +msgstr "" +"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:177 +msgid "Enumeration of possible function watcher events:" +msgstr "Enumeração de possíveis eventos do observador de funções:" + +#: ../../c-api/function.rst:179 +msgid "``PyFunction_EVENT_CREATE``" +msgstr "``PyFunction_EVENT_CREATE``" + +#: ../../c-api/function.rst:180 +msgid "``PyFunction_EVENT_DESTROY``" +msgstr "``PyFunction_EVENT_DESTROY``" + +#: ../../c-api/function.rst:181 +msgid "``PyFunction_EVENT_MODIFY_CODE``" +msgstr "``PyFunction_EVENT_MODIFY_CODE``" + +#: ../../c-api/function.rst:182 +msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_DEFAULTS``" + +#: ../../c-api/function.rst:183 +msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" +msgstr "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" + +#: ../../c-api/function.rst:190 +msgid "Type of a function watcher callback function." +msgstr "Tipo de uma função de retorno de sentinela de função." + +#: ../../c-api/function.rst:192 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " +"then *new_value* will be ``NULL``. Otherwise, *new_value* will hold a :term:" +"`borrowed reference` to the new value that is about to be stored in *func* " +"for the attribute that is being modified." +msgstr "" +"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:197 +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:200 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " +"after *func* has been fully initialized. Otherwise, the callback is invoked " +"before the modification to *func* takes place, so the prior state of *func* " +"can be inspected. The runtime is permitted to optimize away the creation of " +"function objects when possible. In such cases no event will be emitted. " +"Although this creates the possibility of an observable difference of runtime " +"behavior depending on optimization decisions, it does not change the " +"semantics of the Python code being executed." +msgstr "" +"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:209 +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:214 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" +"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:218 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" +"É 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 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" +msgstr "objeto" + +#: ../../c-api/function.rst:8 +msgid "function" +msgstr "função" + +#: ../../c-api/function.rst:20 +msgid "MethodType (in module types)" +msgstr "MethodType (em tipos de módulos)" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po new file mode 100644 index 000000000..67939fb3a --- /dev/null +++ b/c-api/gcsupport.po @@ -0,0 +1,477 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/gcsupport.rst:6 +msgid "Supporting Cyclic Garbage Collection" +msgstr "Suporte a Coleta Cíclica de Lixo" + +#: ../../c-api/gcsupport.rst:8 +msgid "" +"Python's support for detecting and collecting garbage which involves " +"circular references requires support from object types which are " +"\"containers\" for other objects which may also be containers. Types which " +"do not store references to other objects, or which only store references to " +"atomic types (such as numbers or strings), do not need to provide any " +"explicit support for garbage collection." +msgstr "" +"O suporte do Python para detectar e coletar o lixo, que envolve referencias " +"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." + +#: ../../c-api/gcsupport.rst:15 +msgid "" +"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " +"the type object must include the :c:macro:`Py_TPFLAGS_HAVE_GC` and provide " +"an implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " +"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " +"implementation must also be provided." +msgstr "" + +#: ../../c-api/gcsupport.rst:21 +msgid ":c:macro:`Py_TPFLAGS_HAVE_GC`" +msgstr "" + +#: ../../c-api/gcsupport.rst:22 +msgid "" +"Objects with a type with this flag set must conform with the rules " +"documented here. For convenience these objects will be referred to as " +"container objects." +msgstr "" +"Objetos com esse tipo de sinalizador definido devem estar em conformidade " +"com regras documentadas aqui. Por conveniência esses objetos serão " +"referenciados como objetos de contêiner." + +#: ../../c-api/gcsupport.rst:26 +msgid "Constructors for container types must conform to two rules:" +msgstr "Construtores para tipos de contêiner devem obedecer a duas regras:" + +#: ../../c-api/gcsupport.rst:28 +msgid "" +"The memory for the object must be allocated using :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`." +msgstr "" + +#: ../../c-api/gcsupport.rst:31 +msgid "" +"Once all the fields which may contain references to other containers are " +"initialized, it must call :c:func:`PyObject_GC_Track`." +msgstr "" +"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 "" +"Similarly, the deallocator for the object must conform to a similar pair of " +"rules:" +msgstr "" +"Da mesma forma, o desalocador para o objeto deve estar em conformidade com " +"regras semelhantes:" + +#: ../../c-api/gcsupport.rst:37 +msgid "" +"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 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`." + +#: ../../c-api/gcsupport.rst:43 +msgid "" +"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least a :" +"c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from its " +"subclass or subclasses." +msgstr "" + +#: ../../c-api/gcsupport.rst:47 +msgid "" +"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call " +"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the " +"interpreter will automatically populate the :c:member:`~PyTypeObject." +"tp_flags`, :c:member:`~PyTypeObject.tp_traverse` and :c:member:" +"`~PyTypeObject.tp_clear` fields if the type inherits from a class that " +"implements the garbage collector protocol and the child class does *not* " +"include the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." +msgstr "" + +#: ../../c-api/gcsupport.rst:57 +msgid "" +"Analogous to :c:macro:`PyObject_New` but for container objects with the :c:" +"macro:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../../c-api/gcsupport.rst:60 ../../c-api/gcsupport.rst:84 +msgid "" +"Do not call this directly to allocate memory for an object; call the type's :" +"c:member:`~PyTypeObject.tp_alloc` slot instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:63 ../../c-api/gcsupport.rst:87 +msgid "" +"When populating a type's :c:member:`~PyTypeObject.tp_alloc` slot, :c:func:" +"`PyType_GenericAlloc` is preferred over a custom function that simply calls " +"this macro." +msgstr "" +"Ao preencher o slot :c:member:`~PyTypeObject.tp_alloc` de um tipo, :c:func:" +"`PyType_GenericAlloc` é preferível a uma função personalizada que " +"simplesmente chama esta macro." + +#: ../../c-api/gcsupport.rst:67 ../../c-api/gcsupport.rst:91 +msgid "" +"Memory allocated by this macro must be freed with :c:func:`PyObject_GC_Del` " +"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." +msgstr "" + +#: ../../c-api/gcsupport.rst:73 ../../c-api/gcsupport.rst:97 +msgid ":c:func:`PyObject_GC_Del`" +msgstr ":c:func:`PyObject_GC_Del`" + +#: ../../c-api/gcsupport.rst:74 +msgid ":c:macro:`PyObject_New`" +msgstr ":c:macro:`PyObject_New`" + +#: ../../c-api/gcsupport.rst:75 ../../c-api/gcsupport.rst:99 +#: ../../c-api/gcsupport.rst:193 +msgid ":c:func:`PyType_GenericAlloc`" +msgstr ":c:func:`PyType_GenericAlloc`" + +#: ../../c-api/gcsupport.rst:76 ../../c-api/gcsupport.rst:100 +msgid ":c:member:`~PyTypeObject.tp_alloc`" +msgstr ":c:member:`~PyTypeObject.tp_alloc`" + +#: ../../c-api/gcsupport.rst:81 +msgid "" +"Analogous to :c:macro:`PyObject_NewVar` but for container objects with the :" +"c:macro:`Py_TPFLAGS_HAVE_GC` flag set." +msgstr "" + +#: ../../c-api/gcsupport.rst:98 +msgid ":c:macro:`PyObject_NewVar`" +msgstr ":c:macro:`PyObject_NewVar`" + +#: ../../c-api/gcsupport.rst:105 +msgid "" +"Analogous to :c:macro:`PyObject_GC_New` but allocates *extra_size* bytes at " +"the end of the object (at offset :c:member:`~PyTypeObject.tp_basicsize`). " +"The allocated memory is initialized to zeros, except for the :c:type:`Python " +"object header `." +msgstr "" + +#: ../../c-api/gcsupport.rst:111 +msgid "" +"The extra data will be deallocated with the object, but otherwise it is not " +"managed by Python." +msgstr "" + +#: ../../c-api/gcsupport.rst:114 +msgid "" +"Memory allocated by this function must be freed with :c:func:" +"`PyObject_GC_Del` (usually called via the object's :c:member:`~PyTypeObject." +"tp_free` slot)." +msgstr "" + +#: ../../c-api/gcsupport.rst:119 +msgid "" +"The function is marked as unstable because the final mechanism for reserving " +"extra data after an instance is not yet decided. For allocating a variable " +"number of fields, prefer using :c:type:`PyVarObject` and :c:member:" +"`~PyTypeObject.tp_itemsize` instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:130 +msgid "" +"Resize an object allocated by :c:macro:`PyObject_NewVar`. Returns the " +"resized object of type ``TYPE*`` (refers to any C type) or ``NULL`` on " +"failure." +msgstr "" + +#: ../../c-api/gcsupport.rst:134 +msgid "" +"*op* must be of type :c:expr:`PyVarObject *` and must not be tracked by the " +"collector yet. *newsize* must be of type :c:type:`Py_ssize_t`." +msgstr "" + +#: ../../c-api/gcsupport.rst:141 +msgid "" +"Adds the object *op* to the set of container objects tracked by the " +"collector. The collector can run at unexpected times so objects must be " +"valid while being tracked. This should be called once all the fields " +"followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, " +"usually near the end of the constructor." +msgstr "" + +#: ../../c-api/gcsupport.rst:150 +msgid "" +"Returns non-zero if the object implements the garbage collector protocol, " +"otherwise returns 0." +msgstr "" + +#: ../../c-api/gcsupport.rst:153 +msgid "" +"The object cannot be tracked by the garbage collector if this function " +"returns 0." +msgstr "" + +#: ../../c-api/gcsupport.rst:158 +msgid "" +"Returns 1 if the object type of *op* implements the GC protocol and *op* is " +"being currently tracked by the garbage collector and 0 otherwise." +msgstr "" + +#: ../../c-api/gcsupport.rst:161 +msgid "This is analogous to the Python function :func:`gc.is_tracked`." +msgstr "" + +#: ../../c-api/gcsupport.rst:168 +msgid "" +"Returns 1 if the object type of *op* implements the GC protocol and *op* has " +"been already finalized by the garbage collector and 0 otherwise." +msgstr "" + +#: ../../c-api/gcsupport.rst:171 +msgid "This is analogous to the Python function :func:`gc.is_finalized`." +msgstr "" + +#: ../../c-api/gcsupport.rst:178 +msgid "" +"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` or :" +"c:macro:`PyObject_GC_NewVar`." +msgstr "" + +#: ../../c-api/gcsupport.rst:181 +msgid "" +"Do not call this directly to free an object's memory; call the type's :c:" +"member:`~PyTypeObject.tp_free` slot instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:184 +msgid "" +"Do not use this for memory allocated by :c:macro:`PyObject_New`, :c:macro:" +"`PyObject_NewVar`, or related allocation functions; use :c:func:" +"`PyObject_Free` instead." +msgstr "" + +#: ../../c-api/gcsupport.rst:190 +msgid ":c:func:`PyObject_Free` is the non-GC equivalent of this function." +msgstr "" + +#: ../../c-api/gcsupport.rst:191 +msgid ":c:macro:`PyObject_GC_New`" +msgstr ":c:macro:`PyObject_GC_New`" + +#: ../../c-api/gcsupport.rst:192 +msgid ":c:macro:`PyObject_GC_NewVar`" +msgstr ":c:macro:`PyObject_GC_NewVar`" + +#: ../../c-api/gcsupport.rst:194 +msgid ":c:member:`~PyTypeObject.tp_free`" +msgstr ":c:member:`~PyTypeObject.tp_free`" + +#: ../../c-api/gcsupport.rst:199 +msgid "" +"Remove the object *op* from the set of container objects tracked by the " +"collector. Note that :c:func:`PyObject_GC_Track` can be called again on " +"this object to add it back to the set of tracked objects. The deallocator (:" +"c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the object " +"before any of the fields used by the :c:member:`~PyTypeObject.tp_traverse` " +"handler become invalid." +msgstr "" + +#: ../../c-api/gcsupport.rst:208 +msgid "" +"The :c:func:`!_PyObject_GC_TRACK` and :c:func:`!_PyObject_GC_UNTRACK` macros " +"have been removed from the public C API." +msgstr "" + +#: ../../c-api/gcsupport.rst:211 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " +"parameter of this type:" +msgstr "" + +#: ../../c-api/gcsupport.rst:216 +msgid "" +"Type of the visitor function passed to the :c:member:`~PyTypeObject." +"tp_traverse` handler. The function should be called with an object to " +"traverse as *object* and the third parameter to the :c:member:`~PyTypeObject." +"tp_traverse` handler as *arg*. The Python core uses several visitor " +"functions to implement cyclic garbage detection; it's not expected that " +"users will need to write their own visitor functions." +msgstr "" + +#: ../../c-api/gcsupport.rst:223 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " +"type:" +msgstr "" + +#: ../../c-api/gcsupport.rst:228 +msgid "" +"Traversal function for a container object. Implementations must call the " +"*visit* function for each object directly contained by *self*, with the " +"parameters to *visit* being the contained object and the *arg* value passed " +"to the handler. The *visit* function must not be called with a ``NULL`` " +"object argument. If *visit* returns a non-zero value that value should be " +"returned immediately." +msgstr "" + +#: ../../c-api/gcsupport.rst:235 +msgid "" +"The traversal function must not have any side effects. Implementations may " +"not modify the reference counts of any Python objects nor create or destroy " +"any Python objects." +msgstr "" + +#: ../../c-api/gcsupport.rst:239 +msgid "" +"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" +"func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" +"member:`~PyTypeObject.tp_traverse` implementation must name its arguments " +"exactly *visit* and *arg*:" +msgstr "" + +#: ../../c-api/gcsupport.rst:246 +msgid "" +"If the :c:expr:`PyObject *` *o* is not ``NULL``, call the *visit* callback, " +"with arguments *o* and *arg*. If *visit* returns a non-zero value, then " +"return it. Using this macro, :c:member:`~PyTypeObject.tp_traverse` handlers " +"look like::" +msgstr "" + +#: ../../c-api/gcsupport.rst:251 +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:259 +msgid "" +"The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" +"`inquiry` type, or ``NULL`` if the object is immutable." +msgstr "" + +#: ../../c-api/gcsupport.rst:265 +msgid "" +"Drop references that may have created reference cycles. Immutable objects " +"do not have to define this method since they can never directly create " +"reference cycles. Note that the object must still be valid after calling " +"this method (don't just call :c:func:`Py_DECREF` on a reference). The " +"collector will call this method if it detects that this object is involved " +"in a reference cycle." +msgstr "" + +#: ../../c-api/gcsupport.rst:274 +msgid "Controlling the Garbage Collector State" +msgstr "Controlando o estado do coletor de lixo" + +#: ../../c-api/gcsupport.rst:276 +msgid "" +"The C-API provides the following functions for controlling garbage " +"collection runs." +msgstr "" + +#: ../../c-api/gcsupport.rst:281 +msgid "" +"Perform a full garbage collection, if the garbage collector is enabled. " +"(Note that :func:`gc.collect` runs it unconditionally.)" +msgstr "" + +#: ../../c-api/gcsupport.rst:284 +msgid "" +"Returns the number of collected + unreachable objects which cannot be " +"collected. If the garbage collector is disabled or already collecting, " +"returns ``0`` immediately. Errors during garbage collection are passed to :" +"data:`sys.unraisablehook`. This function does not raise exceptions." +msgstr "" + +#: ../../c-api/gcsupport.rst:294 +msgid "" +"Enable the garbage collector: similar to :func:`gc.enable`. Returns the " +"previous state, 0 for disabled and 1 for enabled." +msgstr "" + +#: ../../c-api/gcsupport.rst:302 +msgid "" +"Disable the garbage collector: similar to :func:`gc.disable`. Returns the " +"previous state, 0 for disabled and 1 for enabled." +msgstr "" + +#: ../../c-api/gcsupport.rst:310 +msgid "" +"Query the state of the garbage collector: similar to :func:`gc.isenabled`. " +"Returns the current state, 0 for disabled and 1 for enabled." +msgstr "" + +#: ../../c-api/gcsupport.rst:317 +msgid "Querying Garbage Collector State" +msgstr "" + +#: ../../c-api/gcsupport.rst:319 +msgid "" +"The C-API provides the following interface for querying information about " +"the garbage collector." +msgstr "" + +#: ../../c-api/gcsupport.rst:324 +msgid "" +"Run supplied *callback* on all live GC-capable objects. *arg* is passed " +"through to all invocations of *callback*." +msgstr "" + +#: ../../c-api/gcsupport.rst:328 +msgid "" +"If new objects are (de)allocated by the callback it is undefined if they " +"will be visited." +msgstr "" + +#: ../../c-api/gcsupport.rst:331 +msgid "" +"Garbage collection is disabled during operation. Explicitly running a " +"collection in the callback may lead to undefined behaviour e.g. visiting the " +"same objects multiple times or not at all." +msgstr "" + +#: ../../c-api/gcsupport.rst:339 +msgid "" +"Type of the visitor function to be passed to :c:func:" +"`PyUnstable_GC_VisitObjects`. *arg* is the same as the *arg* passed to " +"``PyUnstable_GC_VisitObjects``. Return ``1`` to continue iteration, return " +"``0`` to stop iteration. Other return values are reserved for now so " +"behavior on returning anything else is undefined." +msgstr "" diff --git a/c-api/gen.po b/c-api/gen.po new file mode 100644 index 000000000..cb489c612 --- /dev/null +++ b/c-api/gen.po @@ -0,0 +1,152 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Rafael Fontenelle , 2026 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-05-08 19:31+0000\n" +"PO-Revision-Date: 2026-05-08 17:16+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" +"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " +"1000000 == 0 ? 1 : 2;\n" + +#: ../../c-api/gen.rst:6 +msgid "Generator Objects" +msgstr "Objetos Geradores" + +#: ../../c-api/gen.rst:8 +msgid "" +"Generator objects are what Python uses to implement generator iterators. " +"They are normally created by iterating over a function that yields values, " +"rather than explicitly calling :c:func:`PyGen_New` or :c:func:" +"`PyGen_NewWithQualName`." +msgstr "" +"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`." + +#: ../../c-api/gen.rst:15 +msgid "The C structure used for generator objects." +msgstr "A estrutura C usada para objetos geradores." + +#: ../../c-api/gen.rst:20 +msgid "The type object corresponding to generator objects." +msgstr "O objeto de tipo correspondendo a objetos geradores." + +#: ../../c-api/gen.rst:25 +msgid "" +"Return true if *ob* is a generator object; *ob* must not be ``NULL``. This " +"function always succeeds." +msgstr "" +"Retorna verdadeiro se *ob* for um objeto gerador; *ob* não deve ser " +"``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/gen.rst:31 +msgid "" +"Return true if *ob*'s type is :c:type:`PyGen_Type`; *ob* must not be " +"``NULL``. This function always succeeds." +msgstr "" +"Retorna verdadeiro se o tipo do *ob* é :c:type:`PyGen_Type`; *ob* não deve " +"ser ``NULL``. Esta função sempre tem sucesso." + +#: ../../c-api/gen.rst:37 +msgid "" +"Create and return a new generator object based on the *frame* object. A " +"reference to *frame* is stolen by this function. The argument must not be " +"``NULL``." +msgstr "" +"Cria e retorna um novo objeto gerador com base no objeto *frame*. Uma " +"referência a *quadro* é roubada por esta função. O argumento não deve ser " +"``NULL``." + +#: ../../c-api/gen.rst:43 +msgid "" +"Create and return a new generator object based on the *frame* object, with " +"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " +"to *frame* is stolen by this function. The *frame* argument must not be " +"``NULL``." +msgstr "" +"Cria e retorna um novo objeto gerador com base no objeto *frame*, com " +"``__name__`` e ``__qualname__`` definidos como *name* e *qualname*. Uma " +"referência a *frame* é roubada por esta função. O argumento *frame* não deve " +"ser ``NULL``." + +#: ../../c-api/gen.rst:51 +msgid "" +"Return a new :term:`strong reference` to the code object wrapped by *gen*. " +"This function always succeeds." +msgstr "" +"Retorna uma nova :term:`referência forte` ao objeto de código encapsulado " +"por *gen*. Esta função sempre tem sucesso." + +#: ../../c-api/gen.rst:56 +msgid "Asynchronous Generator Objects" +msgstr "Objetos geradores assíncronos" + +#: ../../c-api/gen.rst:59 +msgid ":pep:`525`" +msgstr ":pep:`525`" + +#: ../../c-api/gen.rst:63 +msgid "" +"The type object corresponding to asynchronous generator objects. This is " +"available as :class:`types.AsyncGeneratorType` in the Python layer." +msgstr "" +"O objeto de tipo correspondente aos objetos geradores assíncronos. Está " +"disponível como :class:`types.AsyncGeneratorType` na camada Python." + +#: ../../c-api/gen.rst:70 +msgid "" +"Create a new asynchronous generator wrapping *frame*, with ``__name__`` and " +"``__qualname__`` set to *name* and *qualname*. *frame* is stolen by this " +"function and must not be ``NULL``." +msgstr "" +"Cria um novo gerador assíncrono que encapsule *frame*, com ``__name__`` e " +"``__qualname__`` definidos como *name* e *qualname*. *frame* é apropriado " +"por esta função e não deve ser ``NULL``." + +#: ../../c-api/gen.rst:74 +msgid "" +"On success, this function returns a :term:`strong reference` to the new " +"asynchronous generator. On failure, this function returns ``NULL`` with an " +"exception set." +msgstr "" +"Em caso de sucesso, esta função retorna uma :term:`referência forte` ao novo " +"gerador assíncrono. Em caso de falha, esta função retorna ``NULL`` com uma " +"exceção definida." + +#: ../../c-api/gen.rst:82 +msgid "" +"Return true if *op* is an asynchronous generator object, false otherwise. " +"This function always succeeds." +msgstr "" +"Retorna verdadeiro se *op* for um objeto gerador assíncrono, falso caso " +"contrário. Esta função sempre tem sucesso." + +#: ../../c-api/gen.rst:89 +msgid "Deprecated API" +msgstr "" + +#: ../../c-api/gen.rst:93 +msgid "" +"This is a :term:`soft deprecated` API that was included in Python's C API by " +"mistake." +msgstr "" + +#: ../../c-api/gen.rst:96 +msgid "It is solely here for completeness; do not use this API." +msgstr "" diff --git a/c-api/hash.po b/c-api/hash.po new file mode 100644 index 000000000..72362f165 --- /dev/null +++ b/c-api/hash.po @@ -0,0 +1,235 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR